題目描述
輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。
思路:1、如果鍊錶為空,返回;
2、定義兩個節點指標pl = phead 、pr = phead->next;
3、令 pl -> next = null(鍊錶反轉後的結尾);
4、每一次迴圈,令:
phead = pr;(phead指向準備改變節點內指標指向的節點pr)
pr = pr->next;(在節點內指標指向改變前,先把下乙個節點準備好)
phead->next = pl; (改變節點內指標指向前乙個節點pl)
pl = phead;(準備好下乙個pl)
5、當 pr = null 時,反轉完成。phead 為新的頭結點,返回phead即可。
struct listnode*
reverselist
(struct listnode* phead )
return phead;
}
劍指offer JZ15 反轉鍊錶
輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。非常基礎的鍊錶題,幾乎所有學習鍊錶的程式設計師都會在一開始學習這個演算法。唯一需要注意的是,當while迴圈結束時 也即是curnode到達了鍊錶尾 此時curnode.next並沒有被指向lastnode,需要在後面加上。class solution 返...
劍指offer JZ15反轉鍊錶
時間限制 c c 1秒,其他語言2秒 空間限制 c c 32m,其他語言64m 熱度指數 824838 本題知識點 鍊錶 輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。function listnode x function reverselist phead let head phead let n...
劍指offer JZ15 反轉鍊錶
輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。思路 1.利用乙個棧,注意反轉後的最後乙個元素需要把它的next置為空,否則會無限迴圈 struct listnode class solution listnode p phead listnode temp null while note.empty ...