Advertisement
jinhuang1102

105. Construct Binary Tree from Preorder and Inorder Travers

May 5th, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.70 KB | None | 0 0
  1. from collections import deque
  2.  
  3. class Solution:
  4.     def helper(self, preorder, inorder):
  5.         if not inorder or not preorder:
  6.             return None
  7.        
  8.         val = preorder.popleft()
  9.         idx = inorder.index(val)
  10.        
  11.         root = TreeNode(val)
  12.         root.left = self.helper(preorder, inorder[:idx])
  13.         root.right = self.helper(preorder, inorder[idx+1:])
  14.        
  15.         return root
  16.    
  17.     def buildTree(self, preorder: List[int], inorder: List[int]) -> TreeNode:
  18.         if not inorder or not preorder:
  19.             return None
  20.        
  21.         preorder = deque(preorder)
  22.        
  23.         res = self.helper(preorder, inorder)
  24.        
  25.         return res
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement