数组移步转载:https://blog.csdn.net/shijing_0214/article/details/53056943


题目来源:leetcode 2019-03-17

题目描述:Given a linked list, rotate the list to the right by k places, where k is non-negative.

链表移步:观察链表移步的规律可以发现,其实就是在一个环里走,然后选一个结点当头就行

Input: 0->1->2->NULL, k = 4
Output: 2->0->1->NULL
Explanation:
rotate 1 steps to the right: 2->0->1->NULL
rotate 2 steps to the right: 1->2->0->NULL
rotate 3 steps to the right: 0->1->2->NULL
rotate 4 steps to the right: 2->0->1->NULL

代码如下:

 1 /**
 2  * Definition for singly-linked list.
 3  * public class ListNode {
 4  *     int val;
 5  *     ListNode next;
 6  *     ListNode(int x) { val = x; }
 7  * }
 8  */
 9 class Solution {
10     public ListNode rotateRight(ListNode head, int k) {
11         if(k==0||head==null) return head;
12         ListNode cur=head;
13         int l=1;
14         while(cur.next!=null)//链表长度
15         {
16             ++l;
17             cur=cur.next;
18         }
19         if(k>l) k=k%l;
20         if(l==k) return head;//步数如果是整数倍直接返回
21         cur.next=head;//成环
22         cur=head;
23         k=l-k;//找头结点
24         while(--k!=0)
25         {
26             cur=cur.next;
27         }
28         head=cur.next;
29         cur.next=null;
30         return head;
31     }
32
33 }

转载于:https://www.cnblogs.com/cuphoria/p/10465903.html

[JAVA]用数学解释数组移步问题(新增对链表移步的解释)相关推荐

  1. java字符连接字符串数组_Java中连接字符串的最佳方法

    java字符连接字符串数组 最近有人问我这个问题–在Java中使用+运算符连接字符串是否对性能不利? 这让我开始思考Java中连接字符串的不同方法,以及它们如何相互对抗. 这些是我要研究的方法: 使用 ...

  2. java/03/类与对象,深入分析类与对象(权限修饰,构造方法和简单java类),数组的定义及使用

    java/03/类与对象,深入分析类与对象(权限修饰,构造方法和简单java类),数组的定义及使用 七十年代,IBM的Smalltalk语言最先推广面向对象,后来C语言变为C++,后来C++又产生了J ...

  3. Java 接口中使用数组缺点的理由

    如果你发现在一个接口使用有如下定义方法: 1 public String[] getParameters(); 那么你应该认真反思.数组不仅仅老式,而且我们有合理的理由避免暴露它们.在这篇文章中,我将 ...

  4. java进阶第二讲-数组、String类

    java进阶第二讲-数组.String类 1 回顾一下Object Object中的方法:public native int hashCode();带有native关键字的方法调用的是底层C++的dl ...

  5. 【java基础】——一维数组和二维数组存储占用内存大小问题

    问题:在java中,一维数组和二维数组在数据量一样的情况下,开辟的内存大小是怎样的? 一.尝试阶段: 1.代码一: public class OneArrayMemory{public static ...

  6. JAVA学习 API_day04(迭代器, 数组和集合的转换, Comparable和Comparator, 二叉树)

    迭代器, 数组和集合的转换, Comparable和Comparator, 二叉树 1.迭代器 2.数组和集合的转换 3. Comparable和Comparator 4.有序二叉树 1.迭代器 1. ...

  7. java字符串的字节数组_Java字节数组到字符串到字节数组

    我正在尝试将byte []转换为字符串,将byte []的字符串表示形式转换为byte []的转换...我将byte []转换为要发送的字符串,然后我期望我的Web服务(用python编写)将数据直接 ...

  8. java从键盘为数组赋值,java给数组赋值

    java 动态数组赋值,java对象数组详解,java二维数组赋值,java给数组赋值 java数组动态赋值,从零学java笔录-第24篇 图解一维数组在内存中,java二维数组赋值,java给数组赋 ...

  9. 【java进阶06:数组】使用一维数组模拟栈数据结构 使用二维数组模拟酒店,酒店管理系统 Arrays工具类 冒泡排序算法、选择排序算法、二分法

    目录 数组 二维数组 总结 作业 Arrays工具类 数组 数组总结 及 静态初始化一维数组 /* Array:1.java语言中的数组是一种引用数据类型,不属于基本数据类型,数组的父类是Object ...

最新文章

  1. hanlp java_HanLP-实词分词器详解
  2. 运用BT在centos下搭建一个博客论坛
  3. MAT之GA:利用GA对一元函数进行优化过程,求x∈(0,10)中y的最大值
  4. 2011年计算机等级考试二级java笔试练习题(10)_2010年3月计算机等级考试二级Java笔试题及答案...
  5. c语言小数加分,求救:c语言课程设计 员工工资管理程序 有加分的。谢谢
  6. 同心抗疫,IBM中国有限公司致客户的一封信
  7. 卡拉OK歌词同步播放
  8. wampserver修改默认根目录
  9. caffe linux 教程,Caffe 深度学习入门教程
  10. 解决MFC“由于应用程序配置不正确,应用程序未能启动……”错误提示的问题
  11. java手动销毁对象_java对象的销毁详解
  12. AD637 有效值检测
  13. 激活码方式注册的实现原理述
  14. 《30天自制操作系统》学习笔记--第12天
  15. 小米手环8和苹果S8哪款好 小米手环8和苹果S8区别
  16. 手机Camera理论
  17. JPA以外键为条件查询出的List(外键过滤并存入JSONObject)
  18. 无法安全地用该源进行更新,所以默认禁用该源 E: 无法定位软件包
  19. PyQt6中的第一个程序
  20. 使用快照启动 FIBOS、EOS 节点

热门文章

  1. 解决iphone的短信中心号码设置错误的方案
  2. 物联网(IoT)及其未来应用方向
  3. 思科模拟器配置 DHCP中继
  4. 使用VM安装Centos7虚拟机
  5. diskgenius合并分区(diskgenius合并分区到c盘)
  6. mysql导出导入文本文件的几种方式总结
  7. react中使用enzyme.mount和sinon
  8. 如何用PPT编制方案 — 1. PPT的总体规划
  9. 微型计算机2019年度金奖产品,【MC 2019年度评选获奖产品展播】华硕/ROG DIY精品斩获多个大奖...
  10. 微型计算机曾经使用过的字长,自考《计算机应用基础》模拟试题七