原题链接:https://leetcode-cn.com/problems/reverse-nodes-in-k-group/

ListNode* reverseList(ListNode* head,ListNode* tail) {ListNode *cur = NULL,*pre = head;while(pre != tail){ListNode *tmp = pre->next;pre->next = cur;cur = pre;pre = tmp;}return cur;}ListNode* reverseKGroup(ListNode* head,int k){ListNode *p = head,*q = head,*pre = NULL;//p是上一组第一个节点,pre指向上一组最后一个节点,q是下一组第一个节点int cnt = 0;while(q){cnt++;q = q->next;if(cnt == k){ListNode *rhead = reverseList(p,q);//反转之后,p是上一组最后一个节点,q还是下一组第一个节点if(p == head){head = rhead;//如果是第一组,则将head指向rhead} else {pre->next = rhead;//此时pre指向的是上上一组的最后一个节点,将上上一组的最后一个节点指向反转数组的头节点}pre = p;//pre指向上一组最后一个节点p = q;//p指向下一组第一个节点cnt = 0;//重新计数}}if(pre) pre->next = p;//将剩余部分连接起来return head;}

leetcode算法题--K 个一组翻转链表相关推荐

  1. LeetCode--第25题K个一组翻转链表

    LeetCode–第25题K个一组翻转链表 题目描述 解决方案–C语言 主体是用递归的办法.递归三要素: 1.向上返回什么:一个处理好的子链表 2.返回条件是什么:要么是处于好了子链表,要么是因长度小 ...

  2. 【每日算法/刷穿 LeetCode】25. K 个一组翻转链表(困难)

    题目描述 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序. 示例: ...

  3. leetcode C++ 25. K 个一组翻转链表 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。

    一.思路: 先实现两个节点翻转,再实现k个节点翻转,最后实现一组一组翻转 二.C++代码: class Solution { public:ListNode* swap(ListNode *f1, L ...

  4. 【Java】【leetcode第25题】K 个一组翻转链表

    文章仅供自己学习记录所用,若有侵权.联系我删除! 接着来个链表题(听说字节考了) [K 个一组翻转链表] 其实这道题是206题和24题结合的一个进阶版本,我觉得关键就是控制范围(反正我自己折磨了很久, ...

  5. 链表经典题:K个一组翻转链表

    题目: 给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度.如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序. 示例 : 给定这 ...

  6. 由力扣K 个一组翻转链表到360原创题

    前段时间帮对象做360笔试题时,遇到一个没怎么想明白的编程题,直到今天刷力扣遇到了相似的k个一组翻转链表后,想着在做一下那天的编程题,就想着记录一下遇到的难点. 力扣题如下图所示: 360原创题如下: ...

  7. [Leedcode][JAVA][第25题][K个一组反转链表][链表][递归]

    [问题描述][第25题][K个一组反转链表][困难] 时间复杂度:O(N^2) 空间复杂度:O(1) ```java 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表.k 是一个正整数, ...

  8. 20200329:K 个一组翻转链表(leetcode25)

    K 个一组翻转链表 题目 思路与算法 代码实现 复杂度分析 题目 思路与算法 注意题目里的常数的额外空间的要求,意味着不可以使用栈之类的数据结构. 这道链表题实际就是上一道的进阶版,指定每k个进行翻转 ...

  9. 清晰易懂的“K个一组翻转链表”解法

    题目来源:Leetcode K个一组翻转链表 一.题目 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍 ...

最新文章

  1. mingw32-gcc.exe: error: CreateProcess: No such file or directory
  2. Bootstrap系列 -- 34. 按钮下拉菜单
  3. Linux真随机数的生成
  4. 快给你的app上锁吧(android图案解锁)
  5. 引用类型传递参数的特殊情况(string)
  6. CloudFoundry和BOSH的关系
  7. 使用 HTML5 canvas 绘制精美的图形
  8. iMazing六大主要功能介绍
  9. 移动开发 or web 前端?
  10. vbs 读unicode 编码格式的文件
  11. oracle 导入文件 年月日,oracle导入文件时,日期格式问题
  12. ASCII码(C语言)
  13. 事实胜于雄辩,经典中的经典,经久…
  14. 如何删除XP系统的NETWARE,改变登陆界面 火急!!XP系统登录界面由于netware造成的不能更改...
  15. 日记 [2006年06月06日] 庞加莱猜想
  16. 解决“微信与此IPAD不兼容
  17. 计算机专业大学生新学期计划,大学生学习计划500字
  18. 计算机操作系统(2)
  19. Java面向对象【集合】
  20. 使用JBE(Java Bytecode Editor)修改Java字节码

热门文章

  1. 新手用python2还是3-新手用python2还是3
  2. python基础代码-python基础,python基础代码大全
  3. python百度网盘下载-python实现简单的百度云自动下载
  4. python使用for循环打印99乘法表-python3:使用for循环打印九九乘法表
  5. 学python可以做什么知乎-学完Python后能做什么?
  6. linux上使用git把代码push到gitee上
  7. git在提交的时候报错:Your branch is up to date with ‘origin/master‘
  8. LeetCode Divide Two Integers(不使用乘、除,求模来计算商)
  9. qrencode二维码生成在linux下的编译
  10. LeetCode Same Tree