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

力扣61. 旋转链表(java)

在这里插入图片描述

在这里插入图片描述
思路:用快慢指针找到最后链表k个需要移动的节点,然后中间断开节点,原尾节点连接原头节点,返回新的节点即可;
但因为k可能比节点数大,所以需要先统计节点个数,再取模,看看k到底需要移动多少个;


class Solution {public ListNode rotateRight(ListNode head, int k) {//只有0或1个节点,直接返回原链表if(head == null || head.next == null) return head;ListNode fast = head;ListNode slow = head;//统计链表有多少个节点,因为k可能会超过节点数,所以需要取模计算;ListNode t = head;int size = 1; //节点数while(t.next!=null) {t = t.next;size++;}if(k%size == 0) return head; //如果k能整除,则不用移动,直接返回k = k%size; //k取 取模后的结果//双指针,slow和fast中间间隔k个节点while(fast.next!=null && k-- > 0) {fast = fast.next;}while(fast.next!=null) {fast = fast.next;slow = slow.next;}ListNode newHead = slow.next;//然后记录下新的头节点slow.next = null;//中间断开fast.next = head;//原尾节点和头节点连接return newHead;//返回新的头节点}
}
http://www.lryc.cn/news/389292.html

相关文章:

  • 智慧园区综合平台解决方案PPT(75页)
  • Python只读取Excel文件的一部分数据,比如特定范围的行和列?
  • 快速入门FreeRTOS心得(正点原子学习版)
  • 【博主推荐】HTML5实现简洁好看的个人简历网页模板源码
  • Android应用安装过程
  • Word中输入文字时,后面的文字消失
  • 【LeetCode】合并两个有序链表
  • 分子AI预测赛Task1笔记
  • ubuntu 安装并启用 samba
  • atcoder ABC 357-D题详解
  • 从单一到多元:EasyCVR流媒体视频汇聚技术推动安防监控智能升级
  • Spring MVC数据绑定和响应——数据回写(二)JSON数据的回写
  • 怎么快速给他人分享图片?扫描二维码看图的简单做法
  • 【UML用户指南】-26-对高级行为建模-状态图
  • 解决VSCode无法用ssh连接远程服务器的问题
  • 【区块链+基础设施】银联云区块链服务 | FISCO BCOS应用案例
  • Java SE入门及基础(61) 死锁 死锁发生条件
  • 简单爬虫案例——爬取快手视频
  • 42、nginx之nginx.conf
  • 高薪程序员必修课-java为什么要用并发编程
  • postgreSQL学习
  • 【3】系统标定
  • 网安小贴士(3)网安协议
  • 大数据面试题之HBase(1)
  • git回退commit的方式
  • [Information Sciences 2023]用于假新闻检测的相似性感知多模态提示学习
  • 自定义vue3 hooks
  • 《昇思25天学习打卡营第21天 | 昇思MindSporePix2Pix实现图像转换》
  • 【文档+源码+调试讲解】科研经费管理系统
  • linux 下 rm 为什么要这么写?