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

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

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

class Solution {
public:
   
    ListNode* reverseKGroup(ListNode* head, int k) {
        // write code here
        if(k==1 || head==nullptr)return head;
        //和反转指定区间一样
        ListNode* res=new ListNode(-1);
        res->next=head;
        ListNode* pre=res;
        ListNode* cur=pre->next;
        //计算总长度
        int size=0;
        while(cur){
            cur=cur->next;
            size+=1;
        }
        cur=pre->next;
        //同反转指定区间一样,循环size/k次,
        for(int i=0;i<size/k;i++){
            for(int j=i*k+1;j<(i+1)*k;j++){
                ListNode* temp=cur->next;
                cur->next=temp->next;
                temp->next=pre->next;
                pre->next=temp;
            }
            pre=cur;    //pre为上一区间的末尾
            cur=pre->next;      //新区间开头
        }
        return res->next;
    }
};

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 12:11
我最近都有点不想活了,天天早10晚11的,还问我爱不爱她目前的状态别说爱谁了,没扇谁就不错了。是不是大家都是一进节子,只有工作没有爱情了
AzureSkies:在字节的时候找的就是字节的,飞书太适合恋爱人士了,能看到是不是已读,是不是在会议中。简直冥婚好伴侣
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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