leetcode算法题--K 个一组翻转链表
原题链接: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 个一组翻转链表相关推荐
- LeetCode--第25题K个一组翻转链表
LeetCode–第25题K个一组翻转链表 题目描述 解决方案–C语言 主体是用递归的办法.递归三要素: 1.向上返回什么:一个处理好的子链表 2.返回条件是什么:要么是处于好了子链表,要么是因长度小 ...
- 【每日算法/刷穿 LeetCode】25. K 个一组翻转链表(困难)
题目描述 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序. 示例: ...
- leetcode C++ 25. K 个一组翻转链表 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。
一.思路: 先实现两个节点翻转,再实现k个节点翻转,最后实现一组一组翻转 二.C++代码: class Solution { public:ListNode* swap(ListNode *f1, L ...
- 【Java】【leetcode第25题】K 个一组翻转链表
文章仅供自己学习记录所用,若有侵权.联系我删除! 接着来个链表题(听说字节考了) [K 个一组翻转链表] 其实这道题是206题和24题结合的一个进阶版本,我觉得关键就是控制范围(反正我自己折磨了很久, ...
- 链表经典题:K个一组翻转链表
题目: 给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度.如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序. 示例 : 给定这 ...
- 由力扣K 个一组翻转链表到360原创题
前段时间帮对象做360笔试题时,遇到一个没怎么想明白的编程题,直到今天刷力扣遇到了相似的k个一组翻转链表后,想着在做一下那天的编程题,就想着记录一下遇到的难点. 力扣题如下图所示: 360原创题如下: ...
- [Leedcode][JAVA][第25题][K个一组反转链表][链表][递归]
[问题描述][第25题][K个一组反转链表][困难] 时间复杂度:O(N^2) 空间复杂度:O(1) ```java 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表.k 是一个正整数, ...
- 20200329:K 个一组翻转链表(leetcode25)
K 个一组翻转链表 题目 思路与算法 代码实现 复杂度分析 题目 思路与算法 注意题目里的常数的额外空间的要求,意味着不可以使用栈之类的数据结构. 这道链表题实际就是上一道的进阶版,指定每k个进行翻转 ...
- 清晰易懂的“K个一组翻转链表”解法
题目来源:Leetcode K个一组翻转链表 一.题目 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍 ...
最新文章
- mingw32-gcc.exe: error: CreateProcess: No such file or directory
- Bootstrap系列 -- 34. 按钮下拉菜单
- Linux真随机数的生成
- 快给你的app上锁吧(android图案解锁)
- 引用类型传递参数的特殊情况(string)
- CloudFoundry和BOSH的关系
- 使用 HTML5 canvas 绘制精美的图形
- iMazing六大主要功能介绍
- 移动开发 or web 前端?
- vbs 读unicode 编码格式的文件
- oracle 导入文件 年月日,oracle导入文件时,日期格式问题
- ASCII码(C语言)
- 事实胜于雄辩,经典中的经典,经久…
- 如何删除XP系统的NETWARE,改变登陆界面 火急!!XP系统登录界面由于netware造成的不能更改...
- 日记 [2006年06月06日] 庞加莱猜想
- 解决“微信与此IPAD不兼容
- 计算机专业大学生新学期计划,大学生学习计划500字
- 计算机操作系统(2)
- Java面向对象【集合】
- 使用JBE(Java Bytecode Editor)修改Java字节码
热门文章
- 新手用python2还是3-新手用python2还是3
- python基础代码-python基础,python基础代码大全
- python百度网盘下载-python实现简单的百度云自动下载
- python使用for循环打印99乘法表-python3:使用for循环打印九九乘法表
- 学python可以做什么知乎-学完Python后能做什么?
- linux上使用git把代码push到gitee上
- git在提交的时候报错:Your branch is up to date with ‘origin/master‘
- LeetCode Divide Two Integers(不使用乘、除,求模来计算商)
- qrencode二维码生成在linux下的编译
- LeetCode Same Tree