牛客劍指OFFER JZ15 反轉鍊錶

2021-10-09 11:05:44 字數 514 閱讀 3546

題目描述

輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。

思路: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 ...