leetcode-Reverse Nodes in k-Group
来源:互联网 发布:网络奇兵1 编辑:程序博客网 时间:2024/05/17 02:52
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
思路:每k个翻转一下,(翻转函数不太熟练)
代码:
ListNode *reverse(ListNode *pre,ListNode *end)
{
if(pre==NULL || pre->next==NULL)
{
return pre;
}
ListNode *head=pre->next;
ListNode *cur=pre->next->next;
while(cur!=end)
{
ListNode *next=cur->next;
cur->next=pre->next;
pre->next=cur;
cur=next;
}
head->next=end;
return head;
}
ListNode *reverseKGroup(ListNode *head, int k)
{
if(head == NULL)
{
return NULL;
}
ListNode *dummy=new ListNode(0);
dummy->next=head;
int count=0;
ListNode *pre=dummy;
ListNode *cur=head;
while(cur != NULL)
{
count++;
ListNode *next=cur->next;
if( count == k)
{
pre=reverse(pre,next);
count=0;
}
cur=next;
}
return dummy->next;
}
再附一个单链表反转的函数(思路:一个节点一个节点的反转)
ListNode *reverse(ListNode *L)
{
ListNode *cur=L->next;
ListNode *pre=L;
ListNode *head=L;
while(cur!=NULL)
{
ListNode *next=cur->next;
cur->next=pre;
pre=cur;
cur=next;
}
head->next=NULL;
return pre;
}
- LeetCode:Reverse Nodes in k-Group
- LeetCode: Reverse Nodes in k-Group
- LeetCode : Reverse Nodes in k-Group
- leetcode 42: Reverse Nodes in k-Group
- [Leetcode] reverse nodes in K-Group
- [LeetCode]Reverse Nodes in k-Group
- LeetCode-Reverse Nodes in k-Group
- LeetCode - Reverse Nodes in k-Group
- LeetCode | Reverse Nodes in k-Group
- 【leetcode】Reverse Nodes in k-Group
- Leetcode: Reverse Nodes in k-Group
- leetcode Reverse Nodes in k-Group
- [LeetCode] Reverse Nodes in k-Group
- LeetCode题解: Reverse Nodes in k-Group
- 【Leetcode】Reverse Nodes in k-Group
- LeetCode Reverse Nodes in k-Group
- [Leetcode] Reverse Nodes in k-Group (Java)
- LeetCode(25)Reverse Nodes in K-Group
- linux中三个设置环境变量文件(.bashrc,profile,.bash_profile)的区别
- 基于eclipse创建android的helloworld工程
- PAT-B 1007. 素数对猜想(C++, python)
- 精通安卓性能优化-第一章(四)
- dos命令大全
- leetcode-Reverse Nodes in k-Group
- Hibernate hql 查询指定字段并获取结果集
- LINUX: 多行注释 <Block comment>
- 设计模式学习--------12.代理模式学习
- Linux线程池使用实例
- IPC 之 命名unix域套接字
- HDU1225 Football Score 【结构体排序】
- 一语惊人的现实社会
- 电话拨号器