LeetCode:Construct Binary Tree from Preorder and Inorder Traversal
2013-10-10 14:02
531 查看
Given preorder and inorder traversal of a tree, construct the binary tree.
Note:
You may assume that duplicates do not exist in the tree.
以前在某ACM网站做过这个题,没用递归,差点死了。
这题用递归实现很简单。
Note:
You may assume that duplicates do not exist in the tree.
以前在某ACM网站做过这个题,没用递归,差点死了。
这题用递归实现很简单。
public class ConstructBinaryTreefromPreorderandInorderTraversal { public TreeNode buildTree(int[] preorder, int[] inorder) { if (preorder == null || preorder.length == 0) { return null; } return buildTree(preorder, 0, preorder.length - 1, inorder, 0, inorder.length - 1); } public TreeNode buildTree(int[] preorder, int start, int end, int[] inorder, int inStart, int inEnd) { int rootValue = preorder[start]; int rootIndexInInorder = -1; for (int i = inStart; i <= inEnd; i++) { if (inorder[i] == rootValue) { rootIndexInInorder = i; break; } } TreeNode rootNode = new TreeNode(rootValue); int leftCount = rootIndexInInorder - inStart; if (leftCount > 0) { rootNode.left = buildTree(preorder, start + 1, start + leftCount, inorder, inStart, rootIndexInInorder - 1); } int rightCount = inEnd - rootIndexInInorder; if (rightCount > 0) { rootNode.right = buildTree(preorder, start + leftCount + 1, end, inorder, rootIndexInInorder + 1, inEnd); } return rootNode; } }
相关文章推荐
- Leetcode 105. Construct Binary Tree from Preorder and Inorder Traversal (Medium) (cpp)
- LeetCode 105 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
- 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
- LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal
- 【C++】【LeetCode】105. 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
- 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:二叉树之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---树的构建