反轉連結串列(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
- 反轉一個單連結串列。
- 反轉連結串列
- 反轉相鄰連結串列單元
- 1025 反轉連結串列
- 264反轉連結串列
- leetcode 反轉連結串列LeetCode
- 如何在Java中反轉單連結串列?Java
- 【C++】“反轉連結串列”相關的題目C++
- Java單連結串列反轉圖文詳解Java
- leetcode 92 反轉連結串列ⅡLeetCode
- 連結串列反轉問題
- 206. 反轉連結串列
- 【LeetCode-連結串列】面試題-反轉連結串列LeetCode面試題
- 關於單連結串列反轉的一點整理
- 單連結串列的花式玩法 → 還在玩反轉?
- 資料結構之連結串列:206. 反轉連結串列資料結構
- 反轉連結串列、合併連結串列、樹的子結構
- 資料結構和演算法——Go實現單連結串列並且反轉單連結串列資料結構演算法Go
- TypeScript 實現連結串列反轉TypeScript
- leetcode206. 反轉連結串列LeetCode
- 反轉連結串列系列問題
- java實現連結串列反轉Java
- leetcode 206.反轉連結串列LeetCode
- [leetcode 92] 反轉連結串列 IILeetCode
- leetcode 206. 反轉連結串列LeetCode
- JZ-015-反轉連結串列
- 演算法題:反轉一個單連結串列&判斷連結串列是否有環演算法
- **203.移除連結串列元素****707.設計連結串列****206.反轉連結串列**
- 反轉連結串列(遞迴與棧)遞迴
- LeetCode-Python-(206)反轉連結串列LeetCodePython
- LeetCode-092-反轉連結串列 IILeetCode
- leetCode206 反轉連結串列ILeetCode
- 簡單的單向連結串列
- leetcode 61 旋轉連結串列 c++LeetCodeC++
- 面試必備的「反轉連結串列」面試
- 劍指 Offer 24. 反轉連結串列