首页 > 其他分享 >(链表)20-旋转链表

(链表)20-旋转链表

时间:2023-11-20 22:56:51浏览次数:28  
标签:head ListNode val iter next 链表 20 旋转

 1 /**
 2  * Definition for singly-linked list.
 3  * public class ListNode {
 4  *     int val;
 5  *     ListNode next;
 6  *     ListNode() {}
 7  *     ListNode(int val) { this.val = val; }
 8  *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 9  * }
10  */
11 class Solution {
12     public ListNode rotateRight(ListNode head, int k) {
13         // 针对空链表或单节点链表直接返回
14         if (k == 0 || head == null || head.next == null) {
15             return head;
16         }
17         // 初始链表长度
18         int n = 1;
19         // 计算链表长度
20         ListNode iter = head;
21         while (iter.next != null) {
22             iter = iter.next;
23             n++;
24         }
25         // 计算头结点平移长度
26         int add = n - k % n;
27         if (add == n) {
28             return head;
29         }
30         // 将链表头尾连接成环
31         iter.next = head;
32         // 找到新的尾节点
33         while (add > 0) {
34             iter = iter.next;
35             add --;
36         }
37         // 找到新的头节点
38         ListNode result = iter.next;
39         // 头尾断开
40         iter.next = null;
41         // 返回结果
42         return result;
43     }
44 }

 

标签:head,ListNode,val,iter,next,链表,20,旋转
From: https://www.cnblogs.com/StringBuilder/p/17845107.html

相关文章

  • 先锋版N100-N200-N305老版本(四个M.2转接板)使用教程
    N100-N200-I3-N305先锋版专用四个M.2接口转接板。4M.2-BIOS下载地址刷机前请确认是不是如下产品,其它主板或拓展板不对情况下勿刷!PS:拓展上面的拔码预留给USB切换的,本次版本不支持USB,所有拔码开关暂时用不上,请勿操作。刷BIOS教程,请安装Ventoy制作U盘启动盘工具,把下载到的BIOS复制......
  • 先锋版N100-N200-I3-N305三选一SATA+M.2 NGFF+mSATA拓展板使用教程
    先锋版N100-N200-I3-N305拓展板3选1功能使用教程3选1BIOS下载地址刷机前请确认是不是如下产品,其它拓展板勿刷!重要提示:3选1拓展版不支持NVMe协议的硬盘,接口不对会烧,请勿插PCIE(NVMe)协议的M.2,通电情况下严禁进行拔码操作,需要拔码换硬盘一定要关机掉拔电源下进行通电情况下严禁进行......
  • 先锋版N100-N200-N305新版本(四个M.2或5个M.2转接板)使用教程
    N100-N200-I3-N305先锋版专用支持五个M.2接口转接板5个M.2-BIOS下载地址刷机前请确认是不是如下产品,其它主板或转接板不对情况下勿刷!产品图片......
  • 2023-2024-1 20232407 《网络》 第二周学习总结
    教材学习内容总结教材学习中的问题和解决过程问题1:密码学基础中的对称加密和非对称加密有什么区别?它们分别适用于什么场景?解决方案:询问GPT问题2:什么是数字签名?它是如何保证消息的完整性和真实性的?解决方案:询问GPT基于AI的学习思考在密码学基础中,对称加密和非对称加密是......
  • 每日总结11.20
    命令模式1、理解命令模式的动机,掌握该模式的结构;2、能够利用命令模式解决实际问题。实验任务:多次撤销和重复的命令模式某系统需要提供一个命令集合(注:可以使用链表,栈等集合对象实现),用于存储一系列命令对象,并通过该命令集合实现多次undo()和redo()操作,可以使用加法运算来模拟实现。......
  • 2023.11.20——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.mybatis2.JavaGUI明日计划:学习......
  • 2023-2024-1 20232422《网络》第2周学习总结
    教材学习内容总结教材内容思维导图如下心得体会:学习密码学让我深入了解加密的基本概念,如对称加密、非对称加密、哈希函数等,理解这些概念对于设计和分析安全系统至关重要。密码学不仅仅应用于数据传输的加密,还涉及到数字签名、身份认证、安全协议等多个领域。密码学在计算......
  • C++ 20 编译期类型名获取
    编译期类型名获取C++20标准,使用库std::source_location。#include<source_location>C++20之前在C++20前有两种方法__PRETTY_FUNCTION____FUNCSIG__通过截取函数签名中的T=...获取函数类型。template<typenameT>constexprautotype_name()->std::stri......
  • ISSCC2024 Computing-In-Memory Session 趋势整理
    ISSCC2024Computing-In-MemorySession趋势整理今天上午ISSCC2024远东区推介会,主要关注了一下Computing-In-MemorySession。CIM今年被放在了Session34,会上主持人透露CIM方向一共投稿了50篇,最后录用了9篇,算下来录用率不到20%,不得不感慨一句相当之卷。言归正题,以下是今年CIMS......
  • NOIP2023
    T1:词典题意:给定\(n\)个长度为\(m\)的字符串\(w_1,w_2,\cdots,w_n\)。对于每个\(i=1,2,\cdots,n\)询问是否存在\(w_1',w_2',\cdots,w_n'\)使得对于每个\(j=1,2,\cdots,n\),\(w_j'\)都可以由\(w_j\)交换字符得到,且对于\(j\neqi\)都有\(w......