LeetCode 106. Construct Binary Tree from Inorder and Postorder Traversal
2017-05-19 17:29
363 查看
Given inorder and postorder traversal of a tree, construct the binary tree.
Note:
You may assume that duplicates do not exist in the tree.
解题思路:这题和105的解题思路类似,主要区别在于:将先序遍历换成后续后,根节点将是每部分孩子节点的最后一个节点,所以只需要改变的只是根节点在遍历数组中的下标。首先得到树的根节点后,在中序数组中区分左右孩子节点,然后计算左右孩子节点的个数,找到左右孩子的根节点在后续遍历数组中的下标。
Note:
You may assume that duplicates do not exist in the tree.
解题思路:这题和105的解题思路类似,主要区别在于:将先序遍历换成后续后,根节点将是每部分孩子节点的最后一个节点,所以只需要改变的只是根节点在遍历数组中的下标。首先得到树的根节点后,在中序数组中区分左右孩子节点,然后计算左右孩子节点的个数,找到左右孩子的根节点在后续遍历数组中的下标。
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public TreeNode buildTree(int[] inorder, int[] postorder) { TreeNode root=null; if(inorder.length==postorder.length){ if(inorder.length>=0) root= helper(postorder,postorder.length-1,inorder,0,inorder.length); } return root; } public TreeNode helper(int[] postorder,int index,int [] inorder,int start,int end){ if(index>= postorder.length || index <0 || start >=end){ return null; }else{ TreeNode root =new TreeNode(postorder[index]); int median =0; for(int i=start;i<end;i++){ if(postorder[index]==inorder[i]){ median = i; break; } } root.left=helper(postorder,index-end+median,inorder,start,median); root.right=helper(postorder,index-1,inorder,median+1,end); return root; } } }
相关文章推荐
- leetcode 106. Construct Binary Tree from Inorder and Postorder Traversal
- LeetCode 106. Construct Binary Tree from Inorder and Postorder Traversal (用中序和后序树遍历来建立二叉树)
- leetcode106. Construct Binary Tree from Inorder and Postorder Traversal
- LeetCode 105, 106. Construct Binary Tree from Preorder and Inorder/Inorder and Postorder Traversal
- LeetCode---(106)Construct Binary Tree from Inorder and Postorder Traversal
- LeetCode106 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】105 & 106 Construct Binary Tree from (Preorder and Inorder) || (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 106. 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】106. Construct Binary Tree from Inorder and Postorder Traversal
- leetcode-java-106. Construct Binary Tree from Inorder and Postorder Traversal
- LeetCode-106:Construct Binary Tree from Inorder and Postorder Traversal (利用中序和后序遍历构建二叉树) -- medium
- leetcode——106——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 由中序和后序遍历建立二叉树