1 class Solution:
 2     def buildTree(self, inorder: List[int], postorder: List[int]) -> TreeNode:
 3         if len(postorder)==0 or len(inorder)==0:
 4             return None
 5 
 6         val = postorder[-1]
 7         t = TreeNode(val)
 8         index = inorder.index(val)
 9         t.left = self.buildTree(inorder[:index],postorder[:index])
10         t.right = self.buildTree(inorder[index+1:],postorder[index:-1])
11         return t

本题与leetcode105是同一类的问题。

leetcode105是使用前序和中序构建二叉树,本题是使用中序和后序构建二叉树。

注意,前、中、后三种序列中,只需中序和另外任意一种序列,即可构建二叉树。但是只有前序和后序是无法唯一确定二叉树结构的。

posted on 2019-12-11 11:27  Sempron2800+  阅读(217)  评论(0编辑  收藏  举报