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

LeetCode]—Rotate List 循环右移链表

Rotate List

Given a list, rotate the list to the right by k places, where k is non-negative.

For example:
Given 1->2->3->4->5->NULL and k = 2,
return 4->5->1->2->3->NULL.

分析:

        题意要求循环右移链表,那就先把链表结成环。循环右移就变为了找到新的head,和tail ,并将tail->next 设为NULL。其实tail就是head的前一个节点。

       注意:有可能k大于n。当k大于n时链表可能就循环右移了几圈了。所以求k%n。

      

class Solution {
public:
    ListNode *rotateRight(ListNode *head, int k) {
        ListNode *tail=head;
        int n=1;  //n表示节点数
        if(head==NULL || head->next==NULL) return head;
        
        while(tail->next!=NULL){
            tail=tail->next;
            n++;    
        }

        //结成环
        tail->next=head;

        k=k%n;  //防止k大于n
        
        int count=n-k-1;   //少前进一步,为了先找到head的前一个节点tail。
        tail=head;
        while(count!=0){
            tail=tail->next;
            count--;
        }
        head=tail->next;  //head 就是tail的下一个节点
        tail->next=NULL;

        return head;
    }
};



相关文章:

  • 推荐阅读:太极拳的奥妙-专访七十肖维佳老翁现场展示
  • 一个真实的项目经历,很多东西大家可以借鉴下
  • 无法启动调试 未安装silverlight
  • [LeetCode]—Copy List with Random Pointer 深度复制带“任意指针”的链表
  • DB2使用Data Studio连接报ERRORCODE=-4499 SQLSTATE=08001
  • [LeetCode]—Implement strStr() 寻找子串匹配第一个位置 (KMP)
  • MFC图形函数(转载)
  • [LeetCode]—Add Binary 两个字符串二进制相加
  • 一个VC写的模拟时钟
  • [LeetCode]—Longest Palindromic Substring 最长回文子串
  • 串行通信技术SERDES
  • 从两种SQL表连接写法来了解过去
  • IT项目外包的4321法则
  • [LeeCode]—Wildcard Matching 通配符匹配问题
  • 快马探营:移动MM“热料”解密
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • 2017-09-12 前端日报
  • AWS实战 - 利用IAM对S3做访问控制
  • Computed property XXX was assigned to but it has no setter
  • Druid 在有赞的实践
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • gitlab-ci配置详解(一)
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Java方法详解
  • Js基础知识(一) - 变量
  • oldjun 检测网站的经验
  • Python实现BT种子转化为磁力链接【实战】
  • webpack入门学习手记(二)
  • windows-nginx-https-本地配置
  • yii2中session跨域名的问题
  • 聊聊sentinel的DegradeSlot
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 聊一聊前端的监控
  • 使用putty远程连接linux
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (剑指Offer)面试题34:丑数
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (译) 函数式 JS #1:简介
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .net 验证控件和javaScript的冲突问题
  • .net 怎么循环得到数组里的值_关于js数组
  • .net的socket示例
  • .Net中间语言BeforeFieldInit
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • /proc/vmstat 详解
  • [2]十道算法题【Java实现】
  • [20170728]oracle保留字.txt