public class Bitree {
    int data;
    Bitree left;
    Bitree right;
    public Bitree(){
    
     this.left =null;
     this.right =null;
    }
public Bitree(int data){
this.data = data;
}
public Bitree(int data,Bitree l,Bitree r){
this.data =data;
this.left =l;
this.right =r;
}
public void Print(){
System.out.println(this.data);
}
}public interface VisitTreeInterface {
public Bitree CreatTree(Bitree node);
public void PreOrder(Bitree  node);
public void LastOrder(Bitree node);}
public class VisitTree implements VisitTreeInterface {
int[] a;
int i;
public VisitTree(int[] a){
i=0;
this.a=a;
}
public Bitree CreatTree(Bitree node){
while(i<a.length){
if(a[i]<0){
node=null;
i++;
}
else {
if(a[i]!=0){
node=new Bitree(a[i]);

 System.out.println("node: "+i+" "+node.data);   
i++;
CreatTree(node.left);
CreatTree(node.right);

}
}
}
return node;
}

public void PreOrder(Bitree node){
if(node!=null){
node.Print();
PreOrder(node.left );
PreOrder(node.right );
}
}

public void LastOrder(Bitree node){
if(node!=null){
LastOrder(node.left);
LastOrder(node.right);
node.Print();


}
}
}
public class Main {
public static void main(String[] args){
int[] b={1,4,5,-8,6,-4,9,10};
Bitree node=null;
Bitree bt;
VisitTree tree=new VisitTree(b);
bt=tree.CreatTree(node);
tree.PreOrder(bt);
tree.LastOrder(bt);

}}
输出结果是
node: 0 1
node: 1 4
node: 2 5
node: 4 6
node: 6 9
node: 7 10
1
1  //为什么遍历的时候都只有根节点有值??其他的都为空??难道是我创建二叉树写错了吗?哪位大侠帮我看看问题出在哪里???