二叉树构建
1.完全二叉树
class TreeNode{
int val;
TreeNode left;
TreeNode right;
public TreeNode(int val){
this.val=val;
}
}
public TreeNode create(int[] val, int index){
if(index < val.length){
TreeNode root=new TreeNode(val[index]);
if(index*2+1<val.length){
root.left=create(val,index*2+1);
}
if(index*2+2<val.length){
root.right=create(val,index*2+2);
}
return root;
}
return null;
}
2.二叉搜索树
void insert(int val,TreeNode root){
if(root==null){
root=new TreeNode(val);
}
if(val>root.val){
if(root.right==null){
root.right=new TreeNode(val);
}else
insert(val,root.right);
}else{
if(root.left==null){
root.left=new TreeNode(val);
}else
insert(val,root.left);
}
}
void insert(int val,TreeNode root){
if(root==null){
root=new TreeNode(val);
}
TreeNode cur=root;
while(cur!=null){
if(val>cur.val){
if(cur.right==null){
cur.right=new TreeNode(val);
break;
}else
cur=cur.right;
}else{
if(cur.left==null){
cur.left=new TreeNode(val);
break;
}else
cur=cur.left;
}
}
}