我有這個函數來查找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