Construct Binary Search Tree from Preorder Traversal
Input: [8,5,1,7,10,12]
Output: [8,5,10,1,7,null,12]# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def bstFromPreorder(self, p: List[int]) -> TreeNode:
def helper(stop):
if p and p[0] <= stop:
root = TreeNode(p.pop(0))
root.left = helper(root.val)
root.right = helper(stop)
return root
#p.reverse()
return helper(max(p))
Last updated