25. Reverse Nodes in k-Group
2016-04-25 11:38
549 查看
解决这个问题我的想法就是 进行计数 当计数 每次当count=1时记为head count=k时记为tail 然后反转 连入原链表 最后要记得的是 要把最后没有进行反转的地方 也加入到链表中
class Solution { public: ListNode* reverseKGroup(ListNode* head, int k) { if(!head||!head->next) return head; if(k==1) return head; ListNode *prenode=new ListNode(-1); prenode->next=head; ListNode *pre=prenode; int count=1; ListNode *scan=head; ListNode *first=NULL; ListNode *last=NULL; while(scan) { if(count==k) { last=scan; scan=scan->next; count=1; pre->next=reverse(first,last); pre=first; } if(count==1) { first = scan; if(!scan) break; } scan=scan->next; count++; } if(count!=1) pre->next=first; return prenode->next; } ListNode * reverse(ListNode *head,ListNode *tail) { if(!head||!head->next) return head; ListNode *curhead=head; ListNode *scan=head->next; curhead->next=NULL; while(scan!=tail) { ListNode *temp=scan->next; scan->next=curhead; curhead=scan; scan=temp; } tail->next=curhead; return tail; } };
相关文章推荐
- 菜鸟学习Node.js--express(一)
- node.js 树状菜单递归算法
- node.js Hello world
- node.js node包管理器--npm
- node.js 源码安装node.js
- 基于node实现websocket协议
- datanode数据存放位置研究
- Leetcode 25. Reverse Nodes in k-Group
- 基于node实现websocket协议
- async模块的异步处理
- 获取文件上传进度
- 《LeetBook》leetcode题解(19):Remove Nth Node From End of List[E]——双指针解决链表倒数问题
- LeetCode 237. Delete Node in a Linked List C语言
- hadoop HA启动时 两个namenode节点都是standby,解决办法
- 不完全node实践教程-总结
- nodejs小问题:[1]express不是内部或外部命令
- 菜鸟学习nodejs--回调函数
- 不完全node实践教程-第七发
- 222. Count Complete Tree Nodes
- node学习方法