Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # 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 bstFromPreorder(self, preorder: List[int]) -> TreeNode:
- def dfs(preorder,l,r):
- if l>=r:
- return None
- root=TreeNode(preorder[l])
- rightidx=l
- for i in range(l+1,r):
- if preorder[i]>preorder[l]:
- rightidx=i
- break
- root.left=dfs(preorder,l+1,rightidx)
- root.right=dfs(preorder,rightidx,r)
- return root
- return dfs(preorder,0,len(preorder))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement