【leetcode】106: 从中序与后序遍历序列构造二叉树
题目如下:
本题目的思路基本和105题的思路是相同的,主要要注意进行divide和conqure的时候,index的下标要调整正确,记住python是左闭右开的。
代码如下:
# Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def buildTree(self, inorder: List[int], postorder: List[int]) -> TreeNode: if not inorder or not postorder: return root=TreeNode(postorder[-1]) index=inorder.index(root.val) root.left=self.buildTree(inorder[:index],postorder[:index]) root.right=self.buildTree(inorder[index+1:],postorder[index:-1]) return root