0
public class LinkedList{
private class Node{
int value;
Node next;
}
private Node root;
public LinkedList(){
root = null;
}
public void insert(int value){
root = insert(root, root, value);
}
public Node insert(Node node, Node parent, int value){
if(root == null){
node = new Node();
node.value = value;
}else if(node == null){
node = new Node();
node.value = value;
parent.next = null;
}else{
node.next = insert(node.next, node, value);
}
return node;
}
public void printAll(){
printAll(root);
}
public void printAll(Node node){
Node traverse = node;
while(traverse != null){
System.out.println("This node's value is " + traverse.value);
traverse = traverse.next;
}
}
public static void main(String[] args){
LinkedList myList = new LinkedList();
myList.insert(5);
myList.insert(2);
myList.printAll();
}
}
這是一個解釋我的麻煩的程序。我有一個插入函數,它既有當前節點也有父節點作爲參數。對於第一次插入,我將5插入到列表中,根本上變成了帶有5的節點。對於第二次插入,我在列表中插入2,但是這次它應該將其父節點的下一個設置爲空。節點作爲遞歸調用中的父節點傳遞不更新
當我都插入後打印,它應該顯示
This node's value is 5
但是,相反,它仍然表明,父母的未來仍然是鏈接到第二個節點。
This node's value is 5
This node's value is 2
爲什麼我的parent.next = null生效?有沒有辦法來解決這個問題?我有一個需要修改父項的實現。
我明白了!我在下一次遞歸調用中修改父對象,但只要完成該調用,節點就會返回而不修改根目錄 – Lucky