反轉連結串列(C++簡單區)
反轉連結串列
題目:定義一個函式,輸入一個連結串列的頭節點,反轉該連結串列並輸出反轉後連結串列的頭節點。
示例:
輸入: 1->2->3->4->5->NULL
輸出: 5->4->3->2->1->NULL
限制:
0 <= 節點個數 <= 5000
解題思路
解法一(雙連結串列法)
演算法過程
程式碼如下:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* reverseList(ListNode* head) {
//p是新連結串列
ListNode* p=NULL;
ListNode* q=NULL;
while(head)
{
//q用作儲存下一節點
q=head->next;
head->next=p;
//更新新連結串列
p=head;
head=q;
}
return p;
}
};
連結:https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof/solution/3chong-jie-jue-fang-shi-zhan-shuang-lian-biao-di-g/
解法二(雙指標法)
演算法過程
- 定義兩個指標:pre和 cur;pre在前cur在後。
- 每次讓pre的 next指向 cur,實現一次區域性反轉
- 區域性反轉完成之後, pre 和 cur 同時往前移動一個位置
- 迴圈上述過程,直至 pre 到達連結串列尾部
class Solution {
public:
ListNode* reverseList(ListNode* head) {
ListNode* cur = NULL, *pre = head;
while (pre != NULL) {
ListNode* t = pre->next;
pre->next = cur;
cur = pre;
pre = t;
}
return cur;
}
};
連結:https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof/solution/fan-zhuan-lian-biao-yi-dong-de-shuang-zhi-zhen-jia/
相關文章
- C++:用棧實現反轉連結串列,超簡單!C++
- #反轉連結串列_C++版 #反轉連結串列_Java版 @FDDLCC++Java
- 反轉連結串列
- 連結串列面試題(二)---連結串列逆序(連結串列反轉)面試題
- 如何在Java中反轉單連結串列?Java
- 【C++】“反轉連結串列”相關的題目C++
- Java單連結串列反轉圖文詳解Java
- JavaScript從反轉陣列到連結串列反轉JavaScript陣列
- 反轉連結串列、合併連結串列、樹的子結構
- 資料結構和演算法——Go實現單連結串列並且反轉單連結串列資料結構演算法Go
- 【LeetCode-連結串列】面試題-反轉連結串列LeetCode面試題
- java不用api實現單連結串列反轉(二)JavaAPI
- java實現連結串列反轉Java
- leetcode 反轉連結串列LeetCode
- TypeScript 實現連結串列反轉TypeScript
- 1025 反轉連結串列
- 菜鳥圖解簡單連結串列(轉)圖解
- 演算法題:反轉一個單連結串列&判斷連結串列是否有環演算法
- c++實現單連結串列C++
- 單連結串列簡單操作一
- 資料結構之連結串列:206. 反轉連結串列資料結構
- C++連結串列類的簡單操作含圖書結構體 簡單易懂C++結構體
- leetcode 92 反轉連結串列ⅡLeetCode
- 面試必備的「反轉連結串列」面試
- java 反轉單連結串列,偶爾會遇到的面試題Java面試題
- 劍指offer面試16 反轉連結串列面試
- [leetcode 92] 反轉連結串列 IILeetCode
- 連結串列基礎2(超簡單)--單連結串列的插入和刪除
- 圖解帶頭節點的單連結串列的反轉操作圖解
- 連結串列-單連結串列實現
- **203.移除連結串列元素****707.設計連結串列****206.反轉連結串列**
- 資料結構 - 單連結串列 C++ 實現資料結構C++
- 【資料結構】實現單連結串列(c++)資料結構C++
- [每日一題] 第二題:反轉連結串列每日一題
- 反轉連結串列系列題練習遞迴遞迴
- 每日演算法隨筆:反轉連結串列演算法
- 演算法入門題:如何反轉一個單向連結串列?演算法
- 定義一個函式,輸入一個連結串列的頭節點,反轉該連結串列並輸出反轉後連結串列的頭節點函式