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

输出二叉树的右视图

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

  1. 先构建这个树,然后使用分层打印的方式,每次往最终结果放入最后一个元素即可
  2. 注意索引对齐,有一个方法就是从刚开始大的方式从上到下
  3. 还有注意结构体声明就是类申明
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
# 求二叉树的右视图
# @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












算法解析 文章被收录于专栏

这里主要是算法岗的自我思路总结

全部评论

相关推荐

看到好多帖子双9都kuku挂,双9都挂,那我还投啥啊
_追梦旅人_:同学考虑我司不,我们正在秋招,可在我主页看岗位,感兴趣可直接投递~
点赞 评论 收藏
分享
08-08 16:33
唐山学院 Java
职场水母:首先,简历太长,对于实习和应届找工作,hr一眼扫的是学历,技术看实习,你写的技术栈字太多了,尽量用一句话概括不用写那么详细,技术面的时候会问的,而且技术栈都会在实习或者项目里体现,你要做的是,把你的简历浓缩为一页,删除没用的东西,比如实践经历,自我评价,这些纯废话,没用,专业技能写的太离谱,你真的熟练掌握了吗,建议都写熟悉,找工作和写论文不一样,追求的是干练和实用,把实习经历和项目提前,把掌握的技术栈写到最后,然后去找实习,
点赞 评论 收藏
分享
09-09 16:12
已编辑
成都理工大学 Java
码客明:拿下hr就拿到offer了
点赞 评论 收藏
分享
09-12 14:52
门头沟学院 Java
不利于团结的话不要说:真的假的? 昨天xhs hr要给我开奖,我说再等等。 给这么多,当时我就接了啊
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

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