linklist *reverseKGroup(linklist *head,int k){//k个一组翻转链表
linklist *p=head,*q=head,*m,*l=head->next,*w;
//p,q为已翻转好链表的表尾,利用q向后移动,当移动到第k个时,记录第k+1个位置和p之后的位置,令p指向第k+1个位置,然后将要翻转的k个链表结点用头插法插入
//然后更新p,q,和记录的位置,当q为NULL时退出循环
int n=k;
while(q!=NULL){
while(n--!=0){
q=q->next;
if(q==NULL){
return head;
}
}
n=k;
m=q->next;
p->next=m;
while(l!=q){
w=l->next;
l->next=p->next;
p->next=l;
l=w;
}
l->next=p->next;
p->next=l;
while(p->next!=m){
p=p->next;
}
q=p;
l=p->next;
}
return head;
}
lc25-k个一组翻转链表
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 希望让人自由。——豆瓣电影top250.No.1《肖申克的救赎》 很好看的电影,书也很好看,但我个人不太喜欢斯蒂芬...
- 给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果...