61. Rotate List
2018-06-19 本文已影响0人
April63
这一题边界需要考虑一些边界条件:
1,k=0
2, 链表为空或者链表中只有一个元素
- 旋转的step为0
代码如下:
class Solution(object):
def rotateRight(self, head, k):
"""
:type head: ListNode
:type k: int
:rtype: ListNode
"""
if k == 0:
return head
if not head or not head.next:
return head
p = head
count = 1
while p.next:
count += 1
p = p.next
step = k % count
if step == 0:
return head
l = count - step
q = head
pre = ListNode(0)
pre.next = head
while l:
q = q.next
pre = pre.next
l -= 1
newhead = q
pre.next = None
p.next = head
return newhead