Advertisement
Byleth_CYY

Untitled

Jul 3rd, 2020
329
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.79 KB | None | 0 0
  1. # Definition for a binary tree node.
  2. # class TreeNode:
  3. # def __init__(self, val=0, left=None, right=None):
  4. # self.val = val
  5. # self.left = left
  6. # self.right = right
  7. class Solution:
  8. def bstFromPreorder(self, preorder: List[int]) -> TreeNode:
  9.  
  10. def dfs(preorder,l,r):
  11. if l>=r:
  12. return None
  13.  
  14. root=TreeNode(preorder[l])
  15. rightidx=l
  16.  
  17. for i in range(l+1,r):
  18. if preorder[i]>preorder[l]:
  19. rightidx=i
  20. break
  21.  
  22. root.left=dfs(preorder,l+1,rightidx)
  23. root.right=dfs(preorder,rightidx,r)
  24. return root
  25.  
  26. return dfs(preorder,0,len(preorder))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement