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...