LeetCode Reverse Nodes in k-Group 每k个节点为一组,反置链表
2015-07-28 10:39
591 查看
题意:给一个单链表,每k个节点就将这k个节点反置,若节点数不是k的倍数,则后面不够k个的这一小段链表不必反置。
思路:递归法。每次递归就将k个节点反置,将k个之后的链表头递归下去解决。利用原来的函数接口即可,不用重新定义。
AC代码
思路:递归法。每次递归就将k个节点反置,将k个之后的链表头递归下去解决。利用原来的函数接口即可,不用重新定义。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* reverseKGroup(ListNode* head, int k) { if(k==1) return head; ListNode* p=head; int cnt=0; while(cnt!=k && p) //找到下一段的链表头 { cnt++; p=p->next; } if(cnt==k) //进行反置 { ListNode* nextp=head->next, frontp=head, qq; while(nextp!=p) //p是下一段链表的开头 { qq=nextp->next; nextp->next=frontp; frontp=nextp; nextp=qq; } head->next=reverseKGroup( p ,k ); return frontp; //返回新链表的头指针 } else return head; //不够k个 } };
AC代码
相关文章推荐
- nodeJs npm包发布
- nodeJs 制作全局命令
- Remove Nth Node From End of List
- nodeJs 使用npm把模块设置成全局命令后报错
- 带你入门带你飞Ⅱ 使用Mocha + Chai + SuperTest测试Restful API in node.js
- Hadoop启动时报错:Incorrect configuration: namenode address dfs.namenode.servicerpc-address or...
- 在 Ubuntu 9.10 操作系统中安装 MonoDevelop 2.2
- NameNode HA(翻译)
- node.js中log4js的使用
- Leetcode25 Reverse Nodes in k-Group
- 刨根问底(二):从INode客户端看如何培养兴趣 (续)
- 基于Nodejs的BigPipe实现
- node-webkit 拖动效果和问题
- LeetCode 之 Delete Node in a Linked List — C++ 实现
- 在Netbeans IDE上安装node.js
- 玩转Nodejs的集群
- 玩转Nodejs的集群
- manbook pro和inode联网
- Delete Node in a Linked List
- 222题——Count Complete Tree Nodes(完全二叉树)