- 先构建这个树,然后使用分层打印的方式,每次往最终结果放入最后一个元素即可 
 - 注意索引对齐,有一个方法就是从刚开始大的方式从上到下 
 - 还有注意结构体声明就是类申明 
 
 #
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
# 求二叉树的右视图
# @param xianxu int整型一维数组 先序遍历
# @param zhongxu int整型一维数组 中序遍历
# @return int整型一维数组
#
class TreeNode:
    def __init__(self,x):
        self.val = x
        self.left = None
        self.right = None
class Solution:
    def cons(self,xianxu,zhongxu):
        if not xianxu:
            return None
        root = TreeNode(xianxu[0])
        index = zhongxu.index(xianxu[0])
        root.left = self.cons(xianxu[1:index+1], zhongxu[:index])
        root.right = self.cons(xianxu[index+1:], zhongxu[index+1:])
        return root
    def solve(self , xianxu , zhongxu ):
        # write code here
        root = self.cons(xianxu,zhongxu)# 构建二叉树
        res = []#最终的结果
        queue = []
        queue.append(root)#开始进入逻辑
        while(len(queue)>0):#等效替代
            n = len(queue)
            path =[]
            while(n):
                n-=1
                node = queue.pop(0)#注意弹栈(又可以弹队列,又把其给删除了)
                path.append(node.val)
                if node.left:
                    queue.append(node.left)
                if node.right:
                    queue.append(node.right)
            res.append(path[-1])
            path = []
        return res