Construct Binary Tree from Preorder and Inorder Traversal 解题报告
2017-04-26 10:47
483 查看
Construct Binary Tree from Preorder and Inorder Traversal
Description
Construct Binary Tree from Preorder and Inorder TraversalNotice
You may assume that duplicates do not exist in the tree.
Example
Given in-order [1,2,3] and pre-order [2,1,3], return a tree: 2 / \ 1 3
实现思路
像这类树问题,往往通过递归可以很简洁的解决。可以先通过先序数组首位确定父节点A,然后在中序数组找到A,以此为中心,将数组切分成两半,进而将问题分成了构建左子树和右子树两个树问题,再重复操作即可。
下面给出了Python版本的简洁实现
""" Definition of TreeNode: class TreeNode: def __init__(self, val): self.val = val self.left, self.right = None, None """ class Solution: """ @param preorder : A list of integers that preorder traversal of a tree @param inorder : A list of integers that inorder traversal of a tree @return : Root of a tree """ def buildTree(self, preorder, inorder): if not preorder: return None root = TreeNode(preorder[0]) mid = 0 while preorder[0] != inorder[mid]: mid += 1 root.left = self.buildTree(preorder[1:mid+1],inorder[0:mid]) root.right = self.buildTree(preorder[mid+1:],inorder[mid+1:]) return root
相关文章推荐
- [leetcode]105. Construct Binary Tree from Preorder and Inorder Traversal@Java解题报告
- LeetCode: Construct Binary Tree from Preorder and Inorder Traversal 解题报告
- 剑指offer 面试题6:重建二叉树(Leetcode105. Construct Binary Tree from Preorder and Inorder Traversal) 解题报告
- [Leetcode] 105. Construct Binary Tree from Preorder and Inorder Traversal 解题报告
- Leetcode 105. Construct Binary Tree from Preorder and Inorder Traversal 先序和中序中恢复二叉树 解题报告
- 【LeetCode】105. Construct Binary Tree from Preorder and Inorder Traversal 解题报告
- 【LeetCode】Construct Binary Tree from Preorder and Inorder Traversal 解题报告
- [leetcode] 105. Construct Binary Tree from Preorder and Inorder Traversal 解题报告
- leecode 解题总结:105. Construct Binary Tree from Preorder and Inorder Traversal
- LeetCode: Construct Binary Tree from Inorder and Postorder Traversal 解题报告
- 【LeetCode】Construct Binary Tree from Inorder and Postorder Traversal 解题报告
- [Leetcode] 106. Construct Binary Tree from Inorder and Postorder Traversal 解题报告
- [leetcode] 106. Construct Binary Tree from Inorder and Postorder Traversal 解题报告
- [leetcode]Construct Binary Tree from Preorder and Inorder Traversal
- LeetCode: Construct Binary Tree from Preorder and Inorder Traversal
- [LeetCode] Construct Binary Tree from Preorder and Inorder Traversal, Solution
- Construct Binary Tree from Preorder and Inorder Traversal
- LeetCode-Construct Binary Tree from Preorder and Inorder Traversal
- [LeetCode] Construct Binary Tree from Preorder and Inorder Traversal
- [Leetcode] Construct Binary Tree from Preorder and Inorder Traversal