输出二叉树的右视图

输出二叉树的右视图

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

1递归构建二叉树。参考 https://www.cnblogs.com/xinchrome/p/4905608.html。
2使用python的字典储存深度上最右侧结点的数据,按顺序返回值(可以使用有序字典)。

运行结果 运行时间 占用内存 使用语言
答案正确 28ms 6520KB Python 3

dic = {}
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
# 求二叉树的右视图
# @param xianxu int整型一维数组 先序遍历
# @param zhongxu int整型一维数组 中序遍历
# @return int整型一维数组
#


class Solution:
    def solve(self, xianxu, zhongxu):
        # write code here
        count = 0
        recurve(xianxu, zhongxu, count)
        global dic
        i = 1
        ans = []
        while i in dic.keys():
            ans.append(dic[i])
            i += 1
        return ans

def recurve(xianxu, zhongxu, count):
    count += 1
    if not zhongxu:
        return
    if not xianxu:
        return
    mid = zhongxu.index(xianxu[0])
    root = treenode(xianxu[0])
    del xianxu[0]
    if mid == 0:
        root.left = None
    else:
        root.left = recurve(xianxu, zhongxu[0:mid], count)
    if mid == len(zhongxu)-1:
        root.right = None
    else:
        root.right = recurve(xianxu, zhongxu[mid+1:len(zhongxu)], count)
    global dic
    dic[count] = root.val
    return root


class treenode:
    def __init__(self, val):
        super().__init__()
        self.val = val
        self.left = None
        self.right = None
全部评论

相关推荐

01-17 12:35
吉首大学 Java
秋招之BrianGriffin:自己的工作自己做!😡
点赞 评论 收藏
分享
明天不下雨了:我靠2022了都去字节了还什么读研我教你****:你好,本人985电子科大在读研一,本科西南大学(211)我在字节跳动实习过。对您的岗位很感兴趣,希望获得一次投递机会。
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务