Construct Binary Tree from Preorder and Inorder Traversal
https://leetcode.com/explore/learn/card/data-structure-tree/133/conclusion/943/
preorder 和 postorder及其相似,唯一改变的地方就是
(1) postorder.pop()
(2) preorder.pop(0)
一个是最后开始pop,一个是从最前来取当前root的值
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def buildTree(self, preorder: List[int], inorder: List[int]) -> TreeNode:
def build(l,r):
if l > r:
return
val = preorder.pop(0)
root = TreeNode(val)
idx = inorder.index(val)
root.left = build(l,idx-1)
root.right = build(idx+1,r)
return root
n = len(inorder)
return build(0,n-1)
PreviousPopulating Next Right Pointers in Each NodeNextConstruct Binary Tree from Inorder and Postorder Traversal
Last updated
Was this helpful?