LeetCode Reverse Nodes in k-Group
来源:互联网 发布:域名查ip 编辑:程序博客网 时间:2024/06/10 02:41
这题好像是美团的一道笔试题,当初记得一种好的方法使用栈,但是这要复制元素,本题有了限制;之后我花了两个小时想找递归的算法,后来还是没找到,下面的是最普通的那种做法,也是调了一阵子才弄出来的。
void reverse(ListNode **s,ListNode**e){ListNode *p=*s,*q=NULL,*r=NULL;(*e)->next = NULL;//this is very importantif (*s==*e)return ;if(p)q = p->next;if (q&&q!=*e)r = q->next;q->next = p;p =q;q = r;while(q){if(r)//&&r!=*e{r =r->next;//q = r;}//else//q = NULL;q->next = p;p = q;q = r;}(*s)->next = NULL;}ListNode *reverseKGroup(ListNode *head, int k) {if(head==NULL||head->next==NULL||k<=1)return head;ListNode *s1=head,*e1=NULL;ListNode *rethead=NULL,*p=NULL,*q=head;while(q){s1 = q;int i;for (i=0;i<k&&q;i++){e1 = q;q = q->next;}if (i!=k&&q==NULL&&rethead==NULL){return head;}if (q==NULL&&i<k)//add this means when remaining nodes less than k do not converse{p->next = s1;p = e1;break;//return rethead;}reverse(&s1,&e1);if (rethead==NULL){rethead = e1;p = s1;}else{p->next = e1;p = s1;}}if(p)p->next = NULL;return rethead;}
0 0
- 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
- CO-成本中心会计
- SQL基础--数据分组和haveing语句
- android使用豆瓣API出现500错误及解决方法
- Can’t connect to MySQL server on ‘…’ (13)
- poj 3254 Corn Fields
- LeetCode Reverse Nodes in k-Group
- C#Winform 最小化到托盘,隐藏当前项目
- HDU 2030
- keyup 事件存在 onchange事件就不会触发
- 数据挖掘/分析前的数据整理方法
- Java环境配置
- 预编译命令之 if、#if、#ifdef、#ifnde、#undef之间的区别
- java序列化和反序列化以及serialVersionUID的作用
- Android中Log信息的输出方法