Leetcode-25 Reverse Nodes in k-Group
来源:互联网 发布:淘宝店铺seo有哪些 编辑:程序博客网 时间:2024/06/06 13:24
题目
Given a linked list, reverse the nodes of a linked list k at a time and return its modified list.
k is a positive integer and is less than or equal to the length of the linked 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
解答
代码:
/** * 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(head==NULL||k==1) return head; ListNode *preheader=new ListNode(-1);//new a listnode,whose next points to head preheader->next=head; ListNode *cur=head,*pre=preheader,*nex; //calculate the length of the List int num=0; while(cur) { num++; cur=cur->next; } while(num>=k) { cur=pre->next; nex=cur->next;//nex is the next of cur pointer for(int i=1;i<k;i++)//adjust k-1 times { cur->next=nex->next; nex->next=pre->next; pre->next=nex; nex=cur->next;//after one adjustment, nex points to cur->next }//if this has been done,it indicates the k nodes have been palced in the reverse position.Then ,turn to the next k nodes. pre=cur; num=num-k;//num should subtract k } return preheader->next; }};
画一遍确实帮助理解!
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
- Linux中修改时间
- ActiveMq发送接收对象
- 实战录 | 新年第一弹 说说SNMP两大核心
- mysql group by,left join
- myeclipse2014 blue 及破解
- Leetcode-25 Reverse Nodes in k-Group
- log4j.properties配置详解
- Linux下samba的安装与配置
- Spring Boot 快速入门
- Android个屏幕的logo尺寸要求
- 可变长参数列表
- flume性能调优总结
- replace的用法小记
- 尔雅/广雅 —— 古代的字典