Reverse Nodes in K-Group
来源:互联网 发布:python raisr 编辑:程序博客网 时间:2024/04/30 07:00
问题描述如下:
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.
You may not alter the values in the nodes, only nodes itself may be changed.
Only constant memory is allowed.
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
主要考察指针的操作,在纸上画个例子,细心点就好了:
下面是代码:注意pKth指的是第K个节点, pFirst 到 pKth 是需要反转的子链:
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ #define LN ListNode*class Solution {public: LN reverseKGroup(LN head ,int k){if (!head||!head->next||k<=1)return head;LN pFirst=head;LN pBefore=NULL;LN pKth=pFirst;while(1){int cnt=k-1;while(cnt&&pKth){pKth=pKth->next;cnt--;}if ( cnt>0 || pKth==NULL)break;reverse(pBefore,pFirst,pKth);if (pBefore==NULL)head=pFirst;pBefore=pKth;pFirst=pKth->next;pKth=pFirst;}return head;}void reverse(LN pBefore,LN& pFirst,LN& pKth){LN pN=pFirst;while(pN!=pKth){LN pTmp=pN->next;pN->next=pKth->next;pKth->next=pN;pN=pTmp;}LN pTmp=pFirst;pFirst=pKth;pKth=pTmp; if (pBefore) pBefore->next=pFirst;}};
- Reverse Nodes in k-Group
- Reverse Nodes in K-Group
- Reverse Nodes in k-Group
- Reverse Nodes In K Group
- Reverse Nodes in k-Group
- Reverse Nodes in k-Group
- Reverse Nodes in k-Group
- Reverse Nodes in k-Group
- Reverse Nodes in k-Group
- Reverse Nodes in k-Group
- Reverse Nodes in k-Group
- Reverse Nodes in k-Group
- Reverse Nodes in k-Group
- Reverse Nodes in k-Group
- Reverse Nodes in k-Group
- Reverse Nodes in k-Group
- Reverse Nodes in k-Group
- Reverse Nodes in k-Group
- 分享android开发过程中用到的一些开源框架
- VS 2012 OpenGL 配置与实例开发
- 《高性能网站建设指南》阅读笔记_规则6- 将脚本放在底部
- MATLAB动态神经网络-时间系列预测
- QT realse程序出现图片,数据库,中文编码问题
- Reverse Nodes in K-Group
- Howto delete shiped apk in LG optimus vu
- 虚拟化有哪几种架构
- 模具设计术语
- 如何解决linux的ssh连接自动断开的问题
- java softReference 详解
- E3 tree 1.6在Firefox下显示问题的修复
- 网站发布
- mount命令案例