我有这个函数来查找BST中从根到叶的所有路径。即使在递归返回后,LinkedList仍然保留值
public static void paths(Node node, LinkedList<Integer> list) {
if (node == null) {
return;
}
list.add(node.data);
if (node.left == null && node.right == null) {
print(list);
return;
} else {
paths(node.left, list);
paths(node.right, list);
}
}
public static void print(LinkedList<Integer> list1) {
System.out.println("Contents of list: " + list1);
}
我把它用:
LinkedList list = new LinkedList();
paths(bt.root, list);
如:
07
02
01 05
它打印:
7 2 1
7 2 1 5 [instead of 7 2 5]
不知何故,值1被保存在 “名单”,甚至从递归返回后。
谢谢你的回复。它真的帮我清楚了我的Java通过价值观的概念! – mihirk 2012-01-30 07:33:12