劍指offer 反轉鍊錶,C 實現(鍊錶)

2022-09-17 10:51:11 字數 715 閱讀 8105

1.題目

struct listnode ;
2.思路# 反轉鍊錶輔助指標:

定義三個用於翻轉鍊錶的輔助指標和乙個用於表示翻轉煉表頭結點的指標,node指向當前節點、left指向當前節點的前乙個節點、right指向當前節點的下乙個節點、reversehead指向翻轉鍊錶的頭結點。

翻轉鍊錶過程:迴圈翻轉鍊錶,每次迴圈翻轉乙個結點。判斷node是否是最後乙個結點,如果是最後乙個節點,則reversehead指向node(確定翻轉煉表表頭節點),然後node指向left(翻轉鍊錶),退出迴圈;如果不是最後乙個節點,則node指向left(翻轉鍊錶),移動left和node指標。

# 魯棒性

3.code

1

/*2 struct listnode

8 };*/

9class solution

31return preversehead;

32 }

33 };

劍指Offer 鍊錶 反轉鍊錶

定義乙個函式,輸入乙個鍊錶的頭節點,反轉該鍊錶並輸出反轉後鍊錶的頭節點。解題思路 演算法流程 複雜度分析 實現 class solution object defreverselist self,head 申請兩個節點,pre和cur,pre最初指向none pre none cur head 遍歷...

劍指offer 反轉鍊錶 C

輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。通過三個指標來實現。反轉鍊錶,希望在時間複雜度和空間複雜度較優,那麼最好進過一次歷遍就實現。經過分析,需要儲存當前節點 上乙個節點和後面乙個節點。初始化 開始處理第乙個節點的時候,他的下乙個節點應該指向空節點。所以將第乙個指標p1初始化指向乙個空節點。第二...

反轉鍊錶(C ) 劍指offer

輸入乙個鍊錶,按鍊錶從尾到頭的順序返回乙個arraylist。vector int printlistfromtailtohead listnode head std reverse ret.begin ret.end return ret vector int printlistfromtailt...