zoukankan      html  css  js  c++  java
  • 889. 根据前序和后序遍历构造二叉树

    返回与给定的前序和后序遍历匹配的任何二叉树。

     pre 和 post 遍历中的值是不同的正整数。

    示例:

    输入:pre = [1,2,4,5,3,6,7], post = [4,5,2,6,7,3,1]
    输出:[1,2,3,4,5,6,7]
     

    提示:

    1 <= pre.length == post.length <= 30
    pre[] 和 post[] 都是 1, 2, ..., pre.length 的排列
    每个输入保证至少有一个答案。如果有多个答案,可以返回其中一个。

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    class Solution:
        def constructFromPrePost(self, pre: List[int], post: List[int]) -> TreeNode:
            if not pre:return None
            root=TreeNode(pre[0])
            if len(pre)==1:return root
            i=post.index(pre[1])+1
            root.left=self.constructFromPrePost(pre[1:i+1],post[:i])
            root.right=self.constructFromPrePost(pre[i+1:],post[i:-1])
            return root
  • 相关阅读:
    友链QAQ
    快读
    树状数组
    构造(排列组合 插板法)
    字符串(string)(字符串相加)
    tarjan1
    魔术棋子(记忆化搜索)
    日期(csp2019)
    神奇的数字(magic)
    最佳调度问题(dfs)
  • 原文地址:https://www.cnblogs.com/xxxsans/p/13747114.html
Copyright © 2011-2022 走看看