#coding:utf-8
class TreeNode:
def __init__(self,val,left,right):
self.val=val
self.left=left
self.right=right
class Solution:
def resolve(self,prestart,instart,isend,prelist,inlist):
if prestart>isend:
return False
root_val=prelist[prestart]
numsub=0
for i in range(len(inlist)):
if inlist[i]==root_val:
numsub=i
root_left=self.reslove(prestart+1,instart,numsub-1,prelist,inlist)
root_right=self.resolve(prestart+1+numsub-instart,numsub+1,isend,prelist,inlist)
return TreeNode(root_val,root_left,root_right)
java:
class TreeNode{
int val;
TreeNode left=null;
TreeNode right=null;
void TreeNode(int val){
this.val=val;
}
}
public class Solution{
public TreeNode reslove(int prestart,int instart,int isend,int[] prelist,int[] inlist){
if(prestart>isend){
return null;
}
value=prelist[prestart];
TreeNode root=new TreeNode(value);
int subnum;
for(int i=0;i<prelist.length-1,i++){
if(inlist[i]==root.val){
subnum=i;
}
}
root.left=reslove(prestart+1,instart,subnum-1,prelist,inlist);
root.right=reslove(prestart+1+subnum-instart,subnum+1,isend,prelist,inlist);
return root;
}
}