当前位置: 首页 > news >正文

LeeCode61 旋转链表

给一个链表的头结点,旋转链表,是每一个结点右移k个位置

输入:head = [1,2,3,4,5], k = 2

输出:[4,5,1,2,3]

struct ListNode {
     int val;
     ListNode *next;
     ListNode() : val(0), next(nullptr) {}
     ListNode(int x) : val(x), next(nullptr) {}
     ListNode(int x, ListNode *next) : val(x), next(next) {}
 };

class Solution {
public:
    ListNode* rotateRight(ListNode* head, int k) {
        if(k ==0 ||head == nullptr || head->next == nullptr)
        {
            return head;
        }
        int n=1;
        ListNode* cur = head;
        while(cur->next != nullptr)
        {
            cur = cur->next;
            n++;
        }
        // cur 当前指向链表尾节点
//      cur->next = head;  // 连接首位结点  //首尾节点连接写在这里,那么当step== n 的时候,会返回一个环形链表
        int step = n- (k % n);
        if( step == n) 
        {
            return head;   
        }
        cur->next = head;  // 连接首位结点
        while(step--) 
        {
            cur = cur->next;
        }
        ListNode* res = cur->next;
        cur->next = nullptr;
        return res;
    }
};

 

相关文章:

  • LeeCode74 搜索二维矩阵
  • (0)Nginx 功能特性
  • (2)nginx 安装、启停
  • (3)nginx 配置(nginx.conf)
  • 汇编语言学习笔记--基础知识篇
  • IAR for 430软件的简单使用
  • 430单片机时钟系统与复位系统的配置(1)
  • 430单片机时钟系统与复位系统的配置(2)
  • STM32F103芯片的一些小知识
  • RCC的一些小知识
  • stm32 SPI学习
  • SPI通信过程以及 STM32的SPI特性构架
  • 通讯的基本概念以及分类
  • STM32通用同步异步收发器(USART)
  • STM32 I2C学习
  • axios 和 cookie 的那些事
  • ES学习笔记(12)--Symbol
  • Fabric架构演变之路
  • k个最大的数及变种小结
  • LeetCode29.两数相除 JavaScript
  • mysql常用命令汇总
  • SpringBoot 实战 (三) | 配置文件详解
  • 从零开始的无人驾驶 1
  • 坑!为什么View.startAnimation不起作用?
  • 物联网链路协议
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 自定义函数
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • Spring第一个helloWorld
  • 从如何停掉 Promise 链说起
  • ​卜东波研究员:高观点下的少儿计算思维
  • #LLM入门|Prompt#3.3_存储_Memory
  • #pragma data_seg 共享数据区(转)
  • $NOIp2018$劝退记
  • (附源码)php投票系统 毕业设计 121500
  • (转)Linux下编译安装log4cxx
  • (转)视频码率,帧率和分辨率的联系与区别
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .net/c# memcached 获取所有缓存键(keys)
  • @ConfigurationProperties注解对数据的自动封装
  • @EnableAsync和@Async开始异步任务支持
  • @Transactional 详解
  • [ 数据结构 - C++]红黑树RBTree
  • []串口通信 零星笔记
  • [2016.7 test.5] T1
  • [AIGC] Nacos:一个简单 yet powerful 的配置中心和服务注册中心
  • [C++]18:set和map的使用
  • [CF407E]k-d-sequence
  • [cogs2652]秘术「天文密葬法」
  • [Django开源学习 1]django-vue-admin
  • [HDU5685]Problem A