LeetCode 25. k個一組翻轉連結串列
題目描述
解題思路
分別求解併合並
分成若干個K個一段的,然後將每個進行翻轉,最後將他們連線起來即可。
程式碼實現
struct ListNode
{
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
class Solution
{
public:
ListNode* rev(ListNode* head)
{
if(head == NULL || head->next == NULL) return head;
ListNode* p = head, *q = p->next, *r;
while(q != NULL)
{
r = q->next;
q->next = p;
p = q;
q = r;
}
return p;
}
ListNode* reverseKGroup(ListNode* head, int k)
{
ListNode* fast = head, *re = head, *pre = NULL;
int length = 0;
while(length++ != k)
{
if(fast == NULL) return head;
pre = fast;
fast = fast->next;
}
pre->next = NULL;
re = rev(head);
head->next = reverseKGroup(fast, k);
return re;
}
};
相關文章
- [leetcode 25]. K 個一組翻轉連結串列LeetCode
- 連結串列中的節點每k個一組翻轉
- K個節點翻轉連結串列
- 一個node連結串列翻轉的面試題面試題
- leetcode 反轉連結串列LeetCode
- LeetCode 23. 合併K個排序連結串列LeetCode排序
- leetcode23. 合併K個排序連結串列LeetCode排序
- leetcode 92 反轉連結串列ⅡLeetCode
- 【LeetCode-連結串列】面試題-反轉連結串列LeetCode面試題
- 翻轉連結串列常用寫法
- 反轉一個單連結串列。
- 【Leetcode】61.旋轉連結串列LeetCode
- leetcode206. 反轉連結串列LeetCode
- leetcode 206.反轉連結串列LeetCode
- [leetcode 92] 反轉連結串列 IILeetCode
- leetcode 206. 反轉連結串列LeetCode
- LeetCode每日一題:反轉連結串列(No.206)LeetCode每日一題
- [連結串列】2.輸入一個連結串列,反轉連結串列後,輸出新連結串列的表頭。[多益,位元組考過]
- [連結串列]leetcode1019-連結串列中的下一個更大節點LeetCode
- 牛客網高頻演算法題系列-BM3-連結串列中的節點每k個一組翻轉演算法
- leetcode 61 旋轉連結串列 c++LeetCodeC++
- LeetCode-Python-(206)反轉連結串列LeetCodePython
- LeetCode-092-反轉連結串列 IILeetCode
- leetCode206 反轉連結串列ILeetCode
- 【LeetCode】->連結串列->通向連結串列自由之路LeetCode
- Leetcode_86_分割連結串列_連結串列LeetCode
- 合併K個排序連結串列排序
- 連結串列倒數第k個結點
- LeetCode-Python-86. 分隔連結串列(連結串列)LeetCodePython
- leetcode:21. 合併兩個有序連結串列(連結串列,簡單)LeetCode
- LeetCode-連結串列LeetCode
- LeetCode 之 JavaScript 解答第23題 —— 合併K個有序連結串列(Merge K Sorted Lists)LeetCodeJavaScript
- LeetCode 86 ——分隔連結串列LeetCode
- LeetCode連結串列專題LeetCode
- 劍指 Offer 25. 合併兩個排序的連結串列 JavaScript實現排序JavaScript
- 定義一個函式,輸入一個連結串列的頭節點,反轉該連結串列並輸出反轉後連結串列的頭節點函式
- 演算法題:反轉一個單連結串列&判斷連結串列是否有環演算法
- LeetCode 92 | 大公司常考的面試題,翻轉連結串列當中指定部分LeetCode面試題