關於java實現連結串列的問題,求高手解惑啊

時間 2021-09-05 12:00:54

1樓:左手編碼

while (p != null)

解釋下你為什麼錯了:

q=p;

q.next=rev.header;

rev.header=q;

p=p.next;

第一步:q=p;這兩個同時指向一個node。

第二步:q.next=rev.

header;將當前node的next指向新連結串列的頭。但是,此時p的next也指向了這個新連結串列的頭。這就導致了沒有入口通向我們原來的連結串列了。

第三步:rev.header=q;調整新連結串列頭的位置為第一個node。

此時,p,q,rev.header同時指向一個node,就是這個新連結串列的頭。我們現在已經完全和目標連結串列失去了聯絡。

第四步:p=p.next;p指向了link rev = new link(0);最初的頭結點。

如此迴圈,表中只有兩個資料在不停地加到新連結串列中,分別是兩個連結串列的頭。

2樓:匿名使用者

static link reverse(link x)return rev;*/

node q = x.header.next, r;

x.header.next=null;

while (q!=null)

return x;}

關於Java中介面實現的問題,一個關於Java中介面實現的問題

宣告實現這個介面,實現介面定義的方法。public class comparableforuser implements comparable public comparableforuser string name,int sequence override 必須實現的方法,由介面定義。publi...

關於java迴圈語句的問題,關於Java迴圈語句的問題

1 while迴圈語句有入口條件,而do while語句沒有入口條件。2 while迴圈語句在程式執行語句過程中可能一次也不執行,而do while迴圈語句至少被執行一次。3 語法不同。while 迴圈條件 do 迴圈操作 while 迴圈條件 while 語句會首先判斷條件是否成立?如果條件成立了...

java的基礎問題求大神看下

str1 str3 str2 str5 這兩個是true,下面解釋下。首先明確一下,a b 這個表示式,只有a個b兩個變數的記憶體地址相等,返回才是true,是記憶體地址,不是看上去顯示的那個值。equals比較不管地址,只要數值相等就可以返回true了 str1 str2 str1是用new st...