首页 > 其他分享 >61. 旋转链表

61. 旋转链表

时间:2023-11-30 15:55:33浏览次数:32  
标签:head ListNode nullptr len next 链表 61 旋转

61. 旋转链表

2021年3月27日

将链表每个节点向右移动 \(k\)个位置

首先,假设链表长度为\(len\)

  1. 当\(k<len\)时,相当于后\(k\)位移到前面
  2. 当\(k>len\)时,令\(k\%=len\),然后再移动即可
class Solution {
public:
    ListNode* rotateRight(ListNode* head, int k) {
        if(head==nullptr)
            return head;
        int len=0;
        ListNode* tmp=nullptr;
        for(ListNode* p=head;p;p=p->next){
            len++;
            if(p->next==nullptr)
                tmp=p;
        }
        k%=len;
        if(k==0)
            return head;
        int i=0;
        for(ListNode* p=head;p;p=p->next,i++){
            if(i==len-k-1){
                tmp->next=head;
                head=p->next;
                p->next=nullptr;
                break;
            }
        }
        return head;
    }
};

标签:head,ListNode,nullptr,len,next,链表,61,旋转
From: https://www.cnblogs.com/CrossAutomaton/p/17867545.html

相关文章

  • 19.删除链表的倒数第N个节点
    leetcode题目链接题目描述给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。示例1:输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5]示例2:输入:head=[1],n=1输出:[]示例3:输入:head=[1,2],n=1输出:[1]提示:链表中结点的数目为sz1<=sz<=300<=Node.val<=10......
  • Cadence IC617 开发环境搭建
    本文主要介绍虚拟机安装方式,内容主要讲述虚拟机的使用,文末会补充手动安装的注意事项。如果你熟悉Linux的使用,可以试试手动安装。如果不熟悉,建议使用现成的虚拟机。资料和资源方面,推荐eetop和Google,eetop需要10快钱注册,花钱注册就好了,以后经常用得上。注意!注意!下载和访问可......
  • 拉链表学习
    拉链表介绍:记录历史。记录一个事务从开始,一直到当前状态的所有变化的信息。业务场景表中的部分字段会被更新。需要查看某一个时间点或者时间段的历史快照信息。表中的记录变化的比例和频率不是很大。具体案例......
  • 如何正确的在AIX 7上正确开启大页内存(large page)on oracle 11.2.0.4 rac 转发 https:
    1、关于大页有个客户的业务系统上要开启大页,提高系统性能,研究了一下,网上文章太多,自己做了一些测试,经过实机测试,整理了一下操作记录。关于AIX上为什么要开启大页,借用MOS里的说明原文:StartingwiththeAIXV5.1operatingsystemwhenrunningonIBMPOWER4orPOWER5proces......
  • 【unity】鼠标拖拽实现摄像机围绕物体视角旋转(物体不动、摄像机旋转)
    直接贴效果和源码了usingUnityEngine;publicclassStagitCamController:MonoBehaviour{//旋转的目标点publicTransformtarget;publicfloatdistance=5.0f;publicVector3startRotation;publicfloatxSpeed=120.0f;publicf......
  • 刷题复习(一)链表-双指针
    刷题复习(一)链表-双指针https://labuladong.gitee.io/algo/di-ling-zh-bfe1b/shuang-zhi-0f7cc/1、合并两个有序链表思路清晰,双链表有个根节点记录开头/***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*ListNode(){}......
  • P7561 [JOISC 2021 Day2] 道路の建設案
    题意给定\(n\)个点,求平面上,曼哈顿距离最近的\(k\)点对。Sol仔细想想就会发现,曼哈顿距离不好做最近\(k\)点对。考虑转成切比雪夫距离。\(x'=x+y,y'=x-y\)。二分答案,每次\(check\)一个\(dis\),询问距离小于\(dis\)的点对是否有\(k\)个。\(check\)是平凡......
  • 2019-旋转
    目录题目题解题目题解画出二维矩阵,找规律,注意输入,输出n,m=map(int,input().split())#读入n,ma=[]foriinrange(n):#读入二维数组a.append(list(map(int,input().split())))#a是n*m的矩阵b=[[0]*nforiinrange(m)]#创建一个旋转之后m*n......
  • 单链表
    classNode{constructor(data){this.data=datathis.next=null}}classNodeList{constructor(){this.head=nullthis.length=0}appendNode(data){constnewNode=newNode(data)......
  • 链表K个节点的组内逆序调整问题
    链表K个节点的组内逆序调整问题作者:Grey原文地址:博客园:链表K个节点的组内逆序调整问题CSDN:链表K个节点的组内逆序调整问题题目描述LeetCode25.ReverseNodesink-Group本题的followup是:Follow-up:CanyousolvetheprobleminO(1)extramemoryspace?即用\(O(......