首页 > 代码库 > Construct Binary Tree from Inorder and Postorder Traversal
Construct Binary Tree from Inorder and Postorder Traversal
Given inorder and postorder traversal of a tree, construct the binary tree.
Note:
You may assume that duplicates do not exist in the tree.
还是重构树 与上一题相比 先序换成了后序 思路还是一样 代码如下:
public class Solution { public TreeNode buildTree(int[] inorder, int[] postorder) { if(postorder.length==0&&inorder.length==0){ return null; } TreeNode root=new TreeNode(postorder[postorder.length-1]); int begindex=0; for(int i=0;i<inorder.length;i++){ if(inorder[i]==postorder[postorder.length-1]){ begindex=i; break; } } int leftlen=begindex; int rightlen=inorder.length-begindex-1; int[] leftpost=new int[leftlen]; int[] leftino=new int[leftlen]; for(int i=0;i<begindex;i++){ leftpost[i]=postorder[i]; leftino[i]=inorder[i]; } root.left=buildTree(leftino, leftpost); int[] rightpost=new int[rightlen]; int[] rightino=new int[rightlen]; for(int i=0;i<rightlen;i++){ rightpost[i]=postorder[i+begindex]; rightino[i]=inorder[i+begindex+1]; } root.right=buildTree(rightino, rightpost); return root; } }
Construct Binary Tree from Inorder and Postorder Traversal
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。