微軟,Google面試題 (19) —— 反轉單向鏈表

題目:輸入一個鏈表的頭結點,反轉該鏈表,並返回反轉後鏈表的頭結點。鏈表結點定義如下:
解法一:起始節點爲p1,令p2 = p1->next, p1->next = NULL。若p2爲NULL,則返回p1;若p2不爲NULL,進行如下循環:令p3 = p2->next。p2->next = p1;然後再令p1 = p2; p2 = p3;直到p2爲NULL,退出循環。返回此時的p1,即爲反轉後鏈表的第一個節點。代碼如下:
解法二:採用遞歸。思路和解法一一樣,只不過是用遞歸的形式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章