题解 | #重建二叉树#

重建二叉树

http://www.nowcoder.com/practice/8a19cbe657394eeaac2f6ea9b0f6fcf6

python dfs解法

dfs ,先找到中序里面前序遍历第一个值的位置idx,
则左节点的pre=pre[1:dix+1], vin=vin[:idx],
右节点pre=[idx+1:],vin=vin[idx+1:]

class Solution:
    def reConstructBinaryTree(self , pre: List[int], vin: List[int]) -> TreeNode:
        # write code here
        def dfs(p, v):
            if not p:
                return None
            node = TreeNode(p[0])
            idx = v.index(p[0])
            node.left = dfs(p[1:idx+1], v[:idx])
            node.right = dfs(p[idx+1:], v[idx+1:])
            return node
        return dfs(pre, vin)
            
全部评论

相关推荐

那一天的Java_J...:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
07-01 19:00
门头沟学院 Java
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

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