LeetCode 61. 旋转链表

2023-10-26

题目链接

61. 旋转链表

一共用两个指针,第一个记录链表的尾节点,第一次遍历记录链表的长度,由于k可能很大所有我们对k模上n,第二次遍历记录我们用第二个指针记录要翻转的第二段链表的前一个节点,然后用尾部指针tail的next指针指向头结点,头结点等于第二个指针的next指针,第二个指针的next指针指向NULL。

/**
 * Definition for singly-linked list.
 * 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(!head || !head->next) return head;
        int n = 0;
        ListNode* tail;
        for(auto p = head; p; p = p->next){
            tail = p;
            n++;
        }
        k %= n;
        if(!k) return head;
        auto p = head;
        for(int i = 0; i < n - k - 1; i++) p = p->next;
        tail->next = head;
        head = p->next;
        p->next = NULL;
        return head;
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LeetCode 61. 旋转链表 的相关文章

  • 宇宙第一 IDE,放弃了 Mac....

    微软发布了 Visual Studio for Mac 退役的公告 公告写道 最新版本 Visual Studio for Mac 17 6 会继续获得额外 12 个月的支持 直至 2024 年 8 月 31 日 并提供针对安全问题的服务更

随机推荐

  • Bootstrap 入门

    一 Bootstrap 简介 框架顾名思义就是一套架构 它会基于自身的特点向用户提供一套较为完整的解决方案 框架的控制权在框架本身 使用者要按照框架所规定的某种规范进行开发 而插件一般是为了解决某个问题专门存在的 其功能单一 并且比较小 前
  • docker windows 下载安装 Update the WSL kernel by running “wsl --update“ or follow instructions at xxx

    下载 Docker Accelerated Containerized Application Development 我这里安装的是windows版的 docker windows 下载安装运行之后提示更新WSL 1 打开cmd窗口记得是
  • firefly如何安装mysql_Firefly安装ROS及ssh远程登录配置

    一 在Linux firefly 3 10 0 上安装ROS indigo 快捷键 CTRL ALT T 打开终端并安装ROS indigo sudo sh c echo deb http packages ros org ros ubun
  • C++ 私有构造函数的作用

    很多情况下要求当前的程序中只有一个object 例如一个程序只有一个和数据库的连接 只有一个鼠标的object 通常我们都将构造函数的声明置于public区段 假如我们将其放入private区段中会发生什么样的后果 这意味着什么 当我们在程
  • (Java)leetcode-84 Largest Rectangle in Histogram( 柱状图中最大的矩形)

    题目描述 难度 hard 给定 n 个非负整数 用来表示柱状图中各个柱子的高度 每个柱子彼此相邻 且宽度为 1 求在该柱状图中 能够勾勒出来的矩形的最大面积 以上是柱状图的示例 其中每个柱子的宽度为 1 给定的高度为 2 1 5 6 2 3
  • SFTP对文件重命名 删除 退出 查看

    常用命令 rename A B ls 空格 t ls 空格 lt sftp gt help Available commands bye Quit sftp
  • php-MD5()函数漏洞

    一 数字与字符串之间的比较 var dump 0 a true var dump 0 a false php把字母开头的字符串转化为整型时 转化为0 前面数字后面字母的话就只取到第一个字母出现的位置之前的数字 二 MD5函数漏洞 GET n
  • P3391 【模板】文艺平衡树(Splay)

    题目链接 splay的学习链接 基于这道题的关于splay的讲解 将由这篇博客开始 include
  • vue页面添加锚点

    本文实例为大家分享了vue实现锚点定位的具体代码 供大家参考 具体内容如下 这里主要是实现了一个简单的滚动触发锚点高亮 以及点击锚点触发滚动的功能 如果是获取浏览器的滚动高度 各个浏览器有所差异 使用以下几种方式 Chrome docume
  • CVPR 2021 人脸编辑GAN汇总

    点击上方 机器学习与生成对抗网络 关注星标 获取有趣 好玩的前沿干货 1 Exploiting Spatial Dimensions of Latent in GAN for Real time Image Editing 生成对抗网络 G
  • Vue项目引入Echarts可视化图表库教程&踩坑

    Apache ECharts是一个基于 JavaScript 的开源可视化图表库 ECharts是一款基于JavaScript的数据可视化图表库 提供直观 生动 可交互 可个性化定制的数据可视化图表 ECharts最初由百度团队开源 并于2
  • AD如何设置单个元器件规则

    在我们使用AD进行PCB绘制时 有时候可以将两个元器件重叠放置 但这时由于规则设置的原因 导致DRC检检查报错 那么如何将这种报错解决呢 一 在英文模式下 按下T M 忽视掉这个检查 但这种方法一旦移动元器件又会显示报错 二 设置单个元器件
  • 负载均衡器ribbon和LoadBalancer

    负载均衡器ribbon和LoadBalancer 客户端负载均衡器 目前主流的负载方案分为以下两种 集中式负载均衡 在消费者和服务提供方中间使用独立的代理方式进行负载 有硬件的 比如 F5 也有软件的 比如 Nginx 客户端根据自己的请求
  • 测试key-value

    package com datacloudsec test collect import com alibaba fastjson JSON import com datacloudsec UEBAApplication import co
  • 【ERROR】本地计算机上的mysql服务启动停止后 Windows下mysql数据库恢复

    MySQL突然连不上的 提示 本地计算机上的mysql服务启动停止后 某些服务在未由其他服务或程序使用时将自动停止 折腾半天网上各种查 才找到方法完美解决 数据库恢复 步骤1 删除原有mysql服务 mysqld remove lt 你的m
  • 面向应用学习stm32(7)-TIM通用定时器-PWM输出和输入

    前导 本文的目的与 意在于面向应用的学习单片机 故不会涉及太多的原理知识 例如寄存器之类的 主要目的在于面向应用的学习单片机 学会单片机的基础用法 开发板采取野火的指南者f103 作者大二小白 写的不好的地方轻点喷 欢迎评论区交流 全部工程
  • 常见的函数式接口介绍

    Supplier
  • linux环境下python编程指南,在Linux系统中搭建Python编程环境

    Linux系统是为编程而设计的 因此在大多数Linux计算机中都默认安装了Python 1 检查Python版本 在系统中运行应用程序Terminal 如果是Ubuntu 可按Ctrl Alt T 打开终端窗口 通过执行python 注意是
  • [学习opencv]彩色图像通道分离、合成

    将彩色图像RGB三色分离出来是一个很有意义的操作 用到void split const Mat mtx vector
  • LeetCode 61. 旋转链表

    题目链接 61 旋转链表 一共用两个指针 第一个记录链表的尾节点 第一次遍历记录链表的长度 由于k可能很大所有我们对k模上n 第二次遍历记录我们用第二个指针记录要翻转的第二段链表的前一个节点 然后用尾部指针tail的next指针指向头结点