15 反轉鍊錶(劍指offer)

2021-10-13 18:35:41 字數 989 閱讀 5560

15. 反轉鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。

1. 思路:

這裡可以採用輔助指標的方式來進行歷求解,以下面的鍊錶為例具體分析如下:

1-首先我們需要定義三個指標,分別指向當前結點(cur)、前一結點(prev)、後一節點(next)

2-然後開始從前往後進行遍歷,在遍歷的過程中對指標進行反轉

第一次遍歷:將cur->next賦給next指標,再將prev賦給cur->next,這樣就將指標反轉了,反轉之後cur指著需要繼續後移,將cur再賦給prev,next再賦給cur,這樣可以得到下面的結果:

繼續進行遍歷:

3-直到cur指標遍歷完尾結點,而此時prev已經移動到尾結點,這樣返回尾結點即得到鍊錶的遍歷了:

15 劍指offer 反轉鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。分析 1 2 3 4 5 1 2 3 4 5 而且這個題難在沒有頭節點 第一種方法是 非遞迴方法 struct listnode class solution return preversehead 第二種方法是 遞迴方法 struct listnode ...

劍指offer 15 反轉鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。反轉鍊錶只需改變鏈結方向,改變方向時需要將原本指向後乙個結點的鏈結方向指向前乙個結點,因此需要記錄下三個結點。include using namespace std struct listnode class solution listnode fron...

劍指Offer 15 反轉鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。coding utf 8 class listnode def init self,x self.val x self.next none class solution 返回listnode def reverselist self,phead writ...