美文网首页数据结构与算法整理
链表-节点k个一组翻转

链表-节点k个一组翻转

作者: 茶还是咖啡 | 来源:发表于2020-03-07 12:28 被阅读0次

给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。

eg:
给你这个链表:1->2->3->4->5
当 k = 2 时,应当返回: 2->1->4->3->5
当 k = 3 时,应当返回: 3->2->1->4->5

可以具体把分为如下几步:

  1. 判断当前链表的长度是否大于k
  2. 如果大于k,将链表的前k个节点进行翻转
    将翻转后的链表尾插到新的链表中。并重复上面的步骤。
  3. 如果当前链表的长度不足k,直接将当前链表尾插到新链表上,结束。

code

ElemSN* flipNode(ElemSN* head,int k){
    if(head==NULL||k<=0){
        return NULL;
    }
    int count=0;
    ElemSN *p=head,*q=head,*hn=NULL,*tail=NULL,*hTemp=NULL,*tempTail=NULL;
    while (head) {
        q=head;
        count=0;
        while(count<k&&q!=NULL){
            count++;
            q=q->next;
        }
        if(count==k){
            // 链表满足翻转条件
            hTemp=NULL;
            tempTail=head;
            count=0;
            while (count<k) {
                p=head;
                head=head->next;
                count++;
                p->next=hTemp;
                hTemp=p;
            }
        }else{
            hTemp=head;
        }
        if(hn==NULL){
            hn=hTemp;
            tail=tempTail;
        }else{
            tail->next=hTemp;
            if(count==k){
                tail=tempTail;
            }else{
                head=NULL;
            }
        }
    }
    return hn;
}

相关文章

  • 25. K 个一组翻转链表

    K个一组反转链表 翻转链表给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。 k 是一个正整数,它...

  • LeetCode练习day4-链表相关

    LeetCode25 K个一组翻转链表 题目详情 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返...

  • K 个一组翻转链表(递归,Kotlin)

    25. K 个一组翻转链表 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。 k 是一个正整数,它...

  • 【LeetCode】25.K个一组翻转链表

    题目描述 25.K个一组翻转链表 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。 k是一个正整数...

  • 【Leetcode】【链表】025-Reverse Nodes

    k个一组翻转链表 给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表。k 是一个正整数,它的值小于或等于...

  • 前端常见算法题(链表篇)

    一、反转问题 2021.02.11 No.25 K个一组翻转链表 给你一个链表,每 k 个节点一组进行翻转,请你返...

  • 25. k个一组翻转链表

    25.k个一组翻转链表 给出一个链表,每k个节点一组进行翻转,并返回翻转后的链表。 k是一个正整数,它的值小于或等...

  • Leetcode系列之链表(11)

    题目: 将给出的链表中的节点每k个一组翻转,返回翻转后的链表 如果链表中的节点数不是k的倍数,将最后剩下的节点保持...

  • 牛客网高频算法题系列-BM3-链表中的节点每k个一组翻转

    牛客网高频算法题系列-BM3-链表中的节点每k个一组翻转 题目描述 将给出的链表中的节点每 k 个一组翻转,返回翻...

  • Java-单链表每K个值逆序

    记录一下将给出的链表中的节点每k 个一组翻转,返回翻转后的链表如果链表中的节点数不是k 的倍数,将最后剩下的节点保...

网友评论

    本文标题:链表-节点k个一组翻转

    本文链接:https://www.haomeiwen.com/subject/kndqdhtx.html