Friday, September 12, 2014

Leetcode: Construct Binary Tree from Preorder and Inorder Traversal @Python

# Definition for a  binary tree node
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    # @param preorder, a list of integers
    # @param inorder, a list of integers
    # @return a tree node
    def buildTree(self, preorder, inorder):
        if not inorder: return None
        root=TreeNode(preorder[0])
        rootidx=inorder.index(preorder[0])
        root.left=self.buildTree(preorder[1:1+rootidx],inorder[:rootidx])
        root.right=self.buildTree(preorder[1+rootidx:],inorder[1+rootidx:])
        return root      

No comments :

Post a Comment