AlgoDesign

Reconstruct from preorder

1class TreeNode:
2    def __init__(self, val, left, right):
3        self.val = val
4        self.left = left
5        self.right = right
6
7class Solution:
8    def reconstructPreorder(self, preorder):
9        def helper(pre):
10            node = next(pre)
11            if not node: return None
12            
13            left = helper(pre)
14            right = helper(pre)
15            return TreeNode(node.val, left, right)
16        
17        return helper(iter(preorder))