2017-10-10 76 views
-1

我寫一個LinkedList反向方法,在main方法中,我定義TEMP和反向調用方法(根目錄包含鏈接列表)的java鏈表反向

Node temp=null; 
r=a.reverse(root,temp); 

public Node reverse(Node node,Node temp){ 
    if(node!=null){ 
     Node n=new Node(); 
     n.data=node.data; 
     n.next=temp; 
     temp=n; 
     node=node.next; 
     reverse(node,temp); 
    } 
    return temp;  
} 

我死記硬揹包含10,20,30 ,40,50` 雖然我打印節點通過反向方法返回,我得到的輸出.. o/p --- 10

+0

我對此表示懷疑,因爲它「沒有顯示任何研究工作」。簡單地[尋找你的標題](https://stackoverflow.com/search?q=java+linked+list+reverse)出現了幾個已經回答過的話題。 –

回答

1

你打消了函數內部的調用返回,這就是爲什麼整個呼叫僅從第一個呼叫返回臨時。這應該工作:

Node temp=null; 
r=a.reverse(root,temp); 

public Node reverse(Node node,Node temp) { 
    if (node!=null){ 
     Node n=new Node(); 
     n.data=node.data; 
     n.next=temp; 
     temp=n; 
     node=node.next; 
     return reverse(node,temp); // Here now we return this result 
    } 
return temp;  
} 

另外,我建議你this question與其他一些倒車方法。

祝你好運!

+0

謝謝@GustavoSánchez –