题解 | #输出二叉树的右视图#

输出二叉树的右视图

http://www.nowcoder.com/practice/c9480213597e45f4807880c763ddd5f0

哈哈自己在网上找了别人的加工润色了一下,主要是增加了注释,他的思路是按层遍历进队列,然后又巧妙利用每一次的个数循环出队识别该层的最后一个,该方案缺点是必须还原二叉树,可以看看我的其它博文比较一下。且我无意中发现除了两个函数外,两个函数中的变量都没有加“self.”,也没报错,怪哉

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 求二叉树的右视图
# @param xianxu int整型一维数组 先序遍历
# @param zhongxu int整型一维数组 中序遍历
# @return int整型一维数组
#
class TreeNode: #这几句类定义放在class Solution里面也是可以滴!
    def __init__(self,x):
        self.val = x
        self.left = None
        self.right = None
class Solution:  #下面这两个函数换换位置也是可以滴,但既然在类内互相调用,self就不能省了
    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: List[int], zhongxu: List[int]) -> List[int]:
        root = self.cons(xianxu,zhongxu)# 调用构建二叉树,是在类内,所以必须有self
        res = []#最终的结果
        queue = []
        queue.append(root)#开始进入逻辑
        while(len(queue)>0):#等效替代
            n = len(queue)
            path =[] #每一次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])
        return res #solve其实是系统设定的主函数,系统应该是默认执行Solution.solve()了,
        #总之该考试环境是个定制化的环境,与真实环境有差别,像这样的代码在真实环境肯定是不完整的

全部评论

相关推荐

10-29 19:45
吉林大学 Java
从零开始数:自我评价没有必要写,但是看起来你应该是学了csdiy的一些课程,可以在专业技能里面写上自己比较熟悉操作系统和计网,但如果你是找Java的话,把第一个项目换了吧,现在看起来有点四不像。 无论是黑马点评或者说做个轮子项目,刷题和八股也搞起来吧,而且也没必要等到寒假,最近就可以开始找,找到就偷偷实习呗,别被逮到就行了。
点赞 评论 收藏
分享
11-29 00:55
门头沟学院
区域赛银,邀请赛金,打算十二月打下Java基础、背点八股、写个外卖后去投福建小厂的寒假实习,简历应该怎么写呢?以及福州/和厦门有推荐的小厂吗?
牛客53210502...:简历一页:把区域银,邀请赛金标粗,其他的奖除非凑一页否则没有必要写。或者多页:每个站一行这样都列出来。项目经历看看牛客其他人是怎么写的,写的不好呢。简历打磨好按部就班没问题的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务