Rotate List
2015-06-12 11:08
253 查看
题目:
Given a list, rotate the list to the right by k places, where k is non-negative.
For example:
Given
return
解题思路:
我在解此题时,遇到的最大问题是没能完全题目的问题(其实也不能完全怪我,它题目根本没描述清楚),现详解如下;
给出一个单链表,和一个K值,根据K值往右旋转,例如:
所以,先求出链表的长度len,其实按着倒数第K%len个位置旋转,这个位置即len-(K%len)
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# @param {ListNode} head
# @param {integer} k
# @return {ListNode}
def rotateRight(self, head, k):
len = 0
if head:
p, len = head, 1
while(p.next):
p = p.next
len += 1
k=k%len
if k==0:return head
else:
return head
sentry_node = ListNode(-1)
sentry_node.next = head
p,i = head, 0
k = len-k-1
while (i<k):
p = p.next
i += 1
tmp = p
if p.next:
p = p.next
tmp.next = None
sentry_node.next = p
while(p.next):
p=p.next
p.next = head
return sentry_node.next
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.
解题思路:
我在解此题时,遇到的最大问题是没能完全题目的问题(其实也不能完全怪我,它题目根本没描述清楚),现详解如下;
给出一个单链表,和一个K值,根据K值往右旋转,例如:
所以,先求出链表的长度len,其实按着倒数第K%len个位置旋转,这个位置即len-(K%len)
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# @param {ListNode} head
# @param {integer} k
# @return {ListNode}
def rotateRight(self, head, k):
len = 0
if head:
p, len = head, 1
while(p.next):
p = p.next
len += 1
k=k%len
if k==0:return head
else:
return head
sentry_node = ListNode(-1)
sentry_node.next = head
p,i = head, 0
k = len-k-1
while (i<k):
p = p.next
i += 1
tmp = p
if p.next:
p = p.next
tmp.next = None
sentry_node.next = p
while(p.next):
p=p.next
p.next = head
return sentry_node.next
相关文章推荐
- Ubuntu 14.04 安装 JDK 8
- 在Virtualbox的Ubuntu上创建无线(WiFi)热点
- php 开发环境图文配置
- 无线入网分析代码一
- 为什么要使用十六进制
- [Spring]04_最小化Spring XML配置
- python通过POST提交页面请求
- Topcoder SRM 661 (Div.1) 250 MissingLCM - 数论
- 8-1使用自由变换(有些操作和教程不同)
- Android中处理崩溃异常
- C#实现将像素转换为页面单位的方法
- RequireJS 2.0初探
- Spring中Adivisor和Aspect的区别(自我理解)
- Eclipse常用快捷键记录
- AR face database
- sublime的ctags安装
- ADO.NET编程之基础知识
- 【html+css】fetch界面 smarty中 使用 if语句
- 在无法判断ANSI还是UICODE编码方式下的字符函数的使用
- Linux用户和组管理整理