【LeetCode热题100】【链表】K 个一组翻转链表

题目链接:25. K 个一组翻转链表 - 力扣(LeetCode)

递归+迭代,迭代翻转每组的链表节点,递归翻转下一组的链表节点

class Solution {
public:
    ListNode* reverseKGroup(ListNode* head, int k) {
        ListNode*nextHead=head; // 下一组的头部
        for(int i=0;i<k;i++){ // 先计算下一组的头部,不够就直接返回
            if(!nextHead)
                return head;
            nextHead=nextHead->next;
        }
        ListNode*curr=head->next;
        head->next= reverseKGroup(nextHead,k); // 翻转下一组,接到当前组的后面
        while(--k){ // 第一个节点已经确定尾部
            ListNode*next=curr->next; // 记录下一个的位置
            curr->next=head; // 把前一个节点放到当前节点的后面
            head=curr; // 更新当前节点为前一个节点
            curr=next; // 更新下一个节点为当前节点
        }
        return head; // 返回当前组最后一个节点
    }
};

相关推荐

  1. LeetCode100】【K 翻转

    2024-04-03 05:02:01       31 阅读
  2. leetcodeHOT 25. K 翻转

    2024-04-03 05:02:01       47 阅读
  3. leetcode100-031】【k翻转

    2024-04-03 05:02:01       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-03 05:02:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-03 05:02:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-03 05:02:01       82 阅读
  4. Python语言-面向对象

    2024-04-03 05:02:01       91 阅读

热门阅读

  1. LeetCode 20.有效的括号

    2024-04-03 05:02:01       30 阅读
  2. MyBatis数据库逆向生成工具

    2024-04-03 05:02:01       33 阅读
  3. 20款高级 Python 装饰器

    2024-04-03 05:02:01       28 阅读
  4. es6中的Object.assign

    2024-04-03 05:02:01       35 阅读
  5. 黑客攻击自己上班的公司会怎样?

    2024-04-03 05:02:01       30 阅读
  6. vue3的ref和reactive对比

    2024-04-03 05:02:01       34 阅读
  7. Android compose 使用指纹验证

    2024-04-03 05:02:01       34 阅读