LeetCode -- Rotate List
2016-04-29 15:26
330 查看
Question:
Given a list, rotate the list to the right by k places, where k is non-negative.
For example:
Given
return
Analysis:
给出一个单链表,旋转链表的从右边数k个位置,将他们按顺序放到左边。k是个非负的整数。
注意一些特殊情况:
如当给出的k值比链表长度还大怎么办?当k=0怎么办?
Answer:
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->NULLand k =
2,
return
4->5->1->2->3->NULL.
Analysis:
给出一个单链表,旋转链表的从右边数k个位置,将他们按顺序放到左边。k是个非负的整数。
注意一些特殊情况:
如当给出的k值比链表长度还大怎么办?当k=0怎么办?
Answer:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { public ListNode rotateRight(ListNode head, int k) { if(head == null || head.next == null) return head; int len = 0; ListNode p = head; ListNode end = null; while(p != null) { if(p.next == null) end = p; p = p.next; len++; } k %= len; if(k == 0) return head; int pre = len - k; len = 0; p = head; while(len +1 < pre) { p = p.next; len++; } ListNode q = p.next; end.next = head; p.next = null; return q; } }
相关文章推荐
- HTML5 Application Cache
- ccc this 指针
- 修改windows远程登录端口
- 【GIT】关于git的故事
- Java 反射
- python中的datetime模块
- POJ 1947 树形DP
- Java单例模式深入详解(转载)
- Grunt API思维导图
- rootvg内置硬盘更换流程(场景假设rootvg里有两块mirror的内置硬盘hdiks0、hdisk1)
- #pragma预处理命令详解
- 遨游Maxthon上次未关闭页面的文件保存在哪里?
- ccc 音乐播放
- 团队项目3.0
- java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
- 展开型博弈
- 模板类的继承
- 【转】Keepalived+Tengine实现高可用集群
- 一个带有点击效果和计时功能可圆角的自定义Button(支持XML和代码修改属性)
- 软件运行时的图标从文件中进行读取[C#]