leetcode 25. Reverse Nodes in k-Group

25. Reverse Nodes in k-Group

递归法:

cpp 复制代码
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* reverseKGroup(ListNode* head, int k) {
        if(k==1)
            return head;
        ListNode* newHead = nullptr;
        ListNode* cur = head;
        int count = 0;
        while(cur && count < k){
            count++;
            newHead = cur;
            cur = cur->next;
        }
        if(count < k)
            return head;
        //到这里时,newHead是第k个结点,它将成为反转后的新的头结点
        ListNode* post = cur;//post是第k+1个结点

        ListNode* pre = nullptr; 
        cur = head;
        while(count--){
            ListNode* temp = cur->next;
            cur->next = pre;
            pre = cur;
            cur = temp;
        }
        head->next = reverseKGroup(post,k);//对第k+1个结点及其之后的结点递归处理

        return newHead;
    }
};

对比leetcode 92. Reverse Linked List II-CSDN博客

相关推荐
Rabitebla8 分钟前
C++ STL 之 set 详解:从底层红黑树到实际应用
开发语言·数据结构·c++·算法·leetcode
郝学胜-神的一滴23 分钟前
力扣 692:巧用小顶堆高效求解前K个高频单词
java·数据结构·python·程序人生·算法·leetcode·职场和发展
程序员-Benothing2 小时前
Java集合:List实现类深度对比
java·开发语言·后端·面试·list
leikooo3 小时前
ARTS 0802: 合并有序链表、AI 时代的技术断层与 TCP 200ms 延迟之谜
人工智能·tcp/ip·链表
木木子2216 小时前
# 鸿蒙 ArkTS 实战:秒表 Stopwatch(示例 5)
数据结构·华为·list·harmonyos
Hi李耶18 小时前
【LeetCode】4-寻找两个正序数组的中位数
算法·leetcode·职场和发展
-dzk-1 天前
【链表】LC 160.相交链表
数据结构·链表
Hi李耶1 天前
【LeetCode】6-Z字形变换
算法·leetcode·职场和发展
AKA__Zas1 天前
芝士算法(前缀和2.0)
java·数据结构·算法·leetcode·哈希算法·学习方法
XWalnut1 天前
LeetCode刷题 day33
java·数据结构·算法·leetcode