Construct Binary Tree from Preorder and Inorder Traversal LeetCode solution in Python

1
# Runtime: 274 ms (Top 36.07%) | Memory: 88.6 MB (Top 22.22%)
2

3

4
# Definition for a binary tree node.
5
# class TreeNode(object):
6
# def __init__(self, val=0, left=None, right=None):
7
# self.val = val
8
# self.left = left
9
# self.right = right
10
class Solution(object):
11
def buildTree(self, preorder, inorder):
12
"""
13
:type preorder: List[int]
14
:type inorder: List[int]
15
:rtype: TreeNode
16
"""
17
if not preorder or not inorder:
18
return None
19

20
root = TreeNode(preorder[0])
21
mid = inorder.index(preorder[0])
22
root.left = self.buildTree(preorder[1 : mid + 1], inorder[:mid])
23
root.right = self.buildTree(preorder[mid + 1 :], inorder[mid + 1 :])
24
return root

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0