首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

这段代码为啥会出错的

2012-10-30 
这段代码为什么会出错的private List list;public void inOrder(){if(this.left!null){this.left.inOrder

这段代码为什么会出错的
private List list;
public void inOrder(){
if(this.left!=null){
this.left.inOrder();
}
if(this.root!=null){
list.add(root.getDate());
System.out.println(root.getDate()+" ");
}
if(this.right!=null){
this.right.inOrder();
}
}

遍历二叉树,我想用一个List将二叉树的数组都保存起来,但是不成功,list的永远只有一个。
我debug发现私有变量list每次递归的地址都不一样
为什么会这么样的呢

[解决办法]
应该是不一样。this指当前节点对象。左节点对象的list当然跟右节点对象的list不同。可是试试把list加上static修饰变成类成员,而不是对象成员。
[解决办法]
private List list = new ArrayList();list是接口,需要实现类
[解决办法]
楼上正解
[解决办法]
代码不全,你的第一个判读
if(this.left!=null){
this.left.inOrder();
}
this.left.inOrder();是哪个?

热点排行