首页 > 其他 > 详细

Construct Binary Tree from Preorder and Inorder Traversal

时间:2014-02-12 12:23:31      阅读:359      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
 1 public class Solution {
 2     public TreeNode buildTree(int[] preorder, int[] inorder) {
 3         int len1 = preorder.length;
 4         int len2 = inorder.length;
 5         if(len1==0) return null;
 6         return helper(preorder,0,len1-1,inorder,0,len2-1);
 7     }
 8     public TreeNode helper(int[]pre,int preStart,int preEnd,int[] in,int inStart,int inEnd){
 9         TreeNode p = new TreeNode(pre[preStart]);
10         p.left = null; 
11         p.right = null;
12         if(preStart==preEnd && pre[preStart]==in[inStart])
13             return p;
14         int mid=inStart;
15         for(;mid<=inEnd;mid++){
16             if(in[mid]==pre[preStart])
17             break;
18         }
19         int leftLen = mid-inStart;
20         if(leftLen>0)
21             p.left = helper(pre,preStart+1,preStart+leftLen,in,inStart,mid-1);
22         if(inEnd>mid)
23             p.right = helper(pre,preStart+leftLen+1,preEnd,in,mid+1,inEnd);
24         return p;
25     }
26 }
View Code

Construct Binary Tree from Preorder and Inorder Traversal

原文:http://www.cnblogs.com/krunning/p/3545276.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!