[Leetcode] 105. Construct Binary Tree from Preorder and Inorder Traversal
2015-04-04 23:36
441 查看
Given preorder and inorder traversal of a tree, construct the binary tree.
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public TreeNode buildTree(int[] preorder, int[] inorder) { if(preorder == null || inorder == null || preorder.length == 0 || inorder.length == 0 || preorder.length != inorder.length) return null; return build(preorder, 0, preorder.length - 1, inorder, 0, inorder.length - 1); } private TreeNode build(int[] preorder, int prestart, int preend, int[] inorder, int instart, int inend){ if(prestart > preend) return null; TreeNode root = new TreeNode(preorder[prestart]); int position = findPosition(inorder, instart, inend, preorder[prestart]); root.left = build(preorder, prestart + 1, prestart + position - instart, inorder, instart, position - 1); root.right = build(preorder, prestart + position - instart + 1, preend, inorder, position + 1, inend); return root; } private int findPosition(int[] inorder, int instart, int inend, int num){ int i; for(i = instart; i <= inend; i++){ if(inorder[i] == num) return i; } return -1; } }
相关文章推荐
- Leetcode 105. Construct Binary Tree from Preorder and Inorder Traversal
- 105. Construct Binary Tree from Preorder and Inorder Traversal LeetCode
- [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 *** 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 105. Construct Binary Tree from Preorder and Inorder Traversal
- leetcode 105. 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@python
- 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 --- 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]105. Construct Binary Tree from Preorder and Inorder Traversal