题解 | #链表中的节点每k个一组翻转#

链表中的节点每k个一组翻转

http://www.nowcoder.com/practice/b49c3dc907814e9bbfa8437c251b028e

ListNode* reverseKGroup(ListNode* head, int k) {
    // write code here
    ListNode *dummy=new ListNode(0);
    dummy->next=head;
 
    ListNode *pre=dummy,*p=dummy->next;
    int n=0;
    while(p){        //遍历链表计算链表长度
       ++n;
        p=p->next;
    }
    int r=n/k;  //计算需要翻转几组
    p=dummy->next;
    while(r>0){              //翻转r组
        for(int i=0;i<k-1;++i){    //k个节点为一组翻转链表,头插法
            ListNode *temp=p->next;
            p->next=temp->next;
            temp->next=pre->next;
            pre->next=temp;
        }
        pre=p;    //更新需要翻转的中间部分的头节点
        p=p->next; //更新需要翻转的第一个节点指针
        --r;
    }
    return dummy->next;  //时间复杂度O(n),空间复杂度O(1)
}

};

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-25 17:51
点赞 评论 收藏
分享
白火同学:先说结论,准大三不是特别好找实习,boss沟通300+没有实习是很正常的情况。一是暑期实习时间太短了,二是在这么多准大四都找不到实习,从实习时间和掌握技术层面,企业会优先看他们。 再说简历,其实985本+准大三到这水平的简历也很优秀了,要说的话,项目经历可以再优化一下,可以基本围绕采取STAR原则,分为项目概述、技术架构、技术亮点、实现结果,再发给AI润色一下。 最后说操作,准大三的话,如果想找实习那就多投,不过现在也7月中旬了,时间上已经略晚了。如果7月底实在找不到,也可以多刷点算法,多学点技术,这实习也不至于一定得有,当然有更好。
点赞 评论 收藏
分享
jnsytgsyqj...:简历跟测试没关系,你更适合运营
点赞 评论 收藏
分享
07-21 18:43
门头沟学院 Java
是暑期都招满了吗
ANEOY:今年感觉真是后端地狱级难度了,从暑期就是这样,前端需求非常大
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务