LeetCode 25 - Reverse Nodes in k-Group
来源:互联网 发布:mac 抹掉磁盘 编辑:程序博客网 时间:2024/05/16 01:55
一、问题描述
Description: Given a linked list, reverse the nodes of a linked list
k at a time and return its modified list.If the number of nodes is not a multiple of
k then left-out nodes in the end should remain as it is.
For example: Given this linked list:
1->2->3->4->5
- For k = 2, you should return:
2->1->4->3->5
- For k = 3, you should return:
3->2->1->4->5
Note: You may not alter the values in the nodes, only nodes itself may be changed.
Only constant memory is allowed.
给一个链表,每
若最后剩下的不足
注意:
- 只能操作结点,不能操作值域。
- 只能使用常量的空间。
二、解题报告
本题是《LeetCode 24 - Swap Nodes in Pairs》的扩展,每
直接上代码:
class Solution {public: ListNode* reverseKGroup(ListNode* head, int k) { if(head == NULL) return NULL; if(k==1) return head; ListNode* start = head; ListNode* end = head; ListNode* p = new ListNode(0); // 头指针 ListNode* new_head = p; while(true) { int i; for(i=0; i<k; ++i) { // 向前移动k步 if(end!=NULL) end = end->next; else break; } if(i <= k-1) // 不足k个,退出循环 break; ListNode* q = start; // 暂存start结点 while(start!=end) { // 采用"头插法"进行逆转 ListNode* temp = start; start = start->next; temp->next = p->next; p->next = temp; } p = q; // 逆转后第一个结点在末尾,p指向末尾 start = end; } p->next = start; return new_head->next; }};
LeetCode答案源代码:https://github.com/SongLee24/LeetCode
0 0
- LeetCode(25)Reverse Nodes in K-Group
- [leetcode 25]Reverse Nodes in k-Group
- [leetcode #25]Reverse Nodes in k-Group
- leetcode 25 Reverse Nodes in k-Group
- Leetcode 25 Reverse Nodes in k-Group
- LeetCode 25 - Reverse Nodes in k-Group
- LeetCode 25: Reverse Nodes in k-Group
- leetcode 25 -- Reverse Nodes in k-Group
- leetcode 25:Reverse Nodes in k-Group
- leetcode 25: Reverse Nodes in k-Group
- [Leetcode 25] Reverse Nodes in k-Group
- Leetcode#25||Reverse Nodes in k-Group
- LeetCode 25 Reverse Nodes in k-Group
- leetcode-25 Reverse Nodes in k-Group
- LeetCode 25: Reverse Nodes in k-Group
- Leetcode #25 Reverse Nodes in k-Group
- LeetCode 25:Reverse Nodes in k-Group
- LeetCode 25 - Reverse Nodes in k-Group
- 推拿培训师王春亮谈成功法则----死死盯住一个目标
- 第12周 程序阅读-多重继承4
- 11.1存储班长学生的信息类
- 提高第32课时,自测
- Irrlicht游戏引擎(V0.1)源码学习系列之一
- LeetCode 25 - Reverse Nodes in k-Group
- C++构造与析构(3) - 析构函数
- 关于文件和目录的几个函数
- 15第十二周实践项目——程序阅读
- 浏览器窗口放大缩小后页面内容居中解决方法
- HDU 1232--并查集
- Windows程序基础二:句柄、HINSTANCE句柄
- 修改Android手机的默认安装位置 为SDCard手机卡
- Warning: mysql_connect(): mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication