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;}
關於連結串列的問題,一個關於連結串列的問題
以下是我寫的關於連結串列的一個類模版,實現了插入結點,刪除結點,將連結串列倒轉等功能,直接包含在主函式的檔案裡就可以用了 link.h ifndef link h define link h include template class link template class node templa...
關於java迴圈語句的問題,關於Java迴圈語句的問題
1 while迴圈語句有入口條件,而do while語句沒有入口條件。2 while迴圈語句在程式執行語句過程中可能一次也不執行,而do while迴圈語句至少被執行一次。3 語法不同。while 迴圈條件 do 迴圈操作 while 迴圈條件 while 語句會首先判斷條件是否成立?如果條件成立了...
急求關於二叉連結串列問題的演算法題,急求一個關於二叉連結串列問題的演算法題
1 求結點數的遞迴定義為 若為空樹,結點數為0 若只有根結點,則結點數為1 否則,結點數為根結點的左子樹結點數 右子樹結點數 1 2 求葉子數的遞迴定義為 若為空樹,葉子數為0 若只有根結點,則葉子數為1 否則,葉子數為根結點的左子樹葉子數 右子樹葉子數typedef char datatype 定...