首页 > 其他分享 >25. K 个一组翻转链表

25. K 个一组翻转链表

时间:2023-03-19 10:45:59浏览次数:41  
标签:25 ListNode dummy int next 链表 tail 翻转

class Solution {
public:
    ListNode* reverseKGroup(ListNode* head, int k) {
        ListNode* dummy=new ListNode(-1,head),*tail=dummy;
        while(tail)
        {
            ListNode* tmp=tail;
            for(int i=0;i<k&&tmp!=nullptr;i++)    tmp=tmp->next;
            if(tmp==nullptr)   break;
            ListNode* a=tail->next,*b=a->next;
            for(int i=0;i<k-1;i++)//只用循环k-1次
            {
                ListNode* t=b->next;
                b->next=a;
                a=b;
                b=t;
            }
            auto c=tail->next;
            tail->next->next=b;//组内第一个点指向最后一个点后面的数
            tail->next=a;//组外第一个节点指向组内最后一个数
            tail=c;//更新组外的第一个节点
        }
        return dummy->next;
    }
};

标签:25,ListNode,dummy,int,next,链表,tail,翻转
From: https://www.cnblogs.com/tangxibomb/p/17232575.html

相关文章

  • 代码随想录Day4-Leetcode24-两两交换链表中的节点, 19.删除链表的倒数第N个节点, 142.环
    24.两两交换链表中的节点题目链接:https://leetcode.cn/problems/swap-nodes-in-pairs比较简单的链表题,注意使用虚拟头结点和注意变量就没问题/***Definitionfor......
  • 代码随想录训练营day 15||二叉树的层序遍历、翻转二叉树、对称二叉树
    二叉树的层序遍历题目链接:二叉树的层序遍历题目描述:给你一个二叉树,请你返回其按层序遍历得到的节点值。(即逐层地,从左到右访问所有节点```输入:root=[3,9,20,nu......
  • 力扣---剑指 Offer 24. 反转链表
    定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入:1->2->3->4->5->NULL输出:5->4->3->2->1->NULL限制:0<=节点个数<=5000来源:力扣(Lee......
  • 力扣---剑指 Offer 06. 从尾到头打印链表
    输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例1:输入:head=[1,3,2]输出:[2,3,1]限制:0<=链表长度<=10000来源:力扣(LeetCode)链接:https://leetcode......
  • day4 | 19. 删除链表的倒数第N个结点,24. 两两交换链表中的节点,
    19.删除链表的倒数第N个结点 题目描述 删除链表的倒数第n个结点,并且返回链表的头节点 思路 1.先确定链表结点数,得到length2.再遍历到第length-n个结点上,改......
  • 数据结构-->链表_02
    本期的链表继续进行,上期我们完成了链表的增加和删除。现在接下来,我们进行链表的查改与优化头文件“SList.h”#include<stdio.h>#include<assert.h>#include<stdlib.h>typ......
  • Vue组件翻转照片
    使用Vue及自定义组件完成10x10图片表格的点击效果TOP:实现这样翻转照片的效果......
  • 19. 删除链表的倒数第 N 个结点
    19.删除链表的倒数第N个结点给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。示例1:输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5]示例2:输入:head=......
  • 24.两两交换链表中的结点
    24.两两交换链表中的节点给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例1:输入......
  • 142.环形链表plus
    142.环形链表II给定一个链表的头节点head,返回链表开始入环的第一个节点。如果链表无环,则返回null。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链......