61. Rotate List

2018-06-19  本文已影响0人  April63

这一题边界需要考虑一些边界条件:
1,k=0
2, 链表为空或者链表中只有一个元素

  1. 旋转的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
上一篇下一篇

猜你喜欢

热点阅读