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

Example

Given 1->2->3->4->5 and k = 2, return 4->5->1->2->3.

分析:

先得到list size, 然后 k = k % size. 找到新head,然后把tail链接到head.

 /**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
/**
* @param head: the List
* @param k: rotate to the right k places
* @return: the list after rotation
*/
public ListNode rotateRight(ListNode head, int k) {
if (head == null || head.next == null) return head;
// write your code here
int size = size(head);
k = k % size; if (k == ) return head;
ListNode pointer = head;
for (int i = ; i <= size - k - ; i++) {
pointer = pointer.next;
} ListNode newHead = pointer.next;
pointer.next = null; // link the tail to the head
ListNode current = newHead;
while (current.next != null) {
current = current.next;
}
current.next = head;
return newHead;
} public int size(ListNode head) {
int count = ;
while (head != null) {
count++;
head = head.next;
}
return count;
}
}

转载请注明出处:cnblogs.com/beiyeqingteng/

最新文章

  1. Android 社交类APP 豆瓣同城Lite(安全,无广告)
  2. 【集合框架】JDK1.8源码分析之IdentityHashMap(四)
  3. Python for Informatics 第11章 正则表达式五(译)
  4. iOS阶段学习第14天笔记(NSString与NSMutableString)
  5. GO语言练习:switch基本用法
  6. SQL 数据库基础
  7. C#中数组、ArrayList和List&lt;T&gt;三者的发展历程
  8. Oracle 中按条件过滤重复记录
  9. uva-442 Matrix Chain Multiplication
  10. java实现邮箱找密码
  11. hive:某张表进行分页
  12. 3星|《HBO的内容战略》:HBO与美国电视业大事记
  13. grep 从文件内容中查找
  14. 从MFQ方法到需求分析
  15. db2 OLAP函数使用
  16. scala 模式匹配详解 1
  17. Git 基本概念
  18. 【转】jquery checkbox勾选/取消勾选的诡异问题
  19. sqlserver profiler 抓出来作业的代码 SQLAgent - TSQL JobStep,二进制作业名字转化为字段串作业名字,job_id
  20. 如何通过from语句调用模块的变量名?

热门文章

  1. Productivity Power Tools 动画演示--给力的插件工具
  2. log4net将日志进行分类,保存到不同的目录当中
  3. 【Gym 100971J】Robots at Warehouse
  4. 【poj2186】 Popular Cows
  5. 一个糟糕的Erlang练习题
  6. C++ 中的名称冲突之 &quot;y1&quot;
  7. 蓝桥T291(BFS + 输出路径)
  8. Boost的状态机库教程(1)
  9. ios 文字上下滚动效果Demo
  10. Ioc注解