zoukankan      html  css  js  c++  java
  • 边工作边刷题:70天一遍leetcode: day 27-2

    Rotate List

    错误点

    • 因为开始要计算结点数,要遍历list,所以顺便先把tail和head连上
    • 因为指针最后要落在最后一个list结点,所以移动n-1步,初始的步数为1(即开始已经计入head)。同理,第二次移动n-k-2步到新head的前一个结点,断开
    • n-k%n!=(n-k)%n,比如n=2, k=2 n-k%n=2, (n-k)%n=0
    # Definition for singly-linked list.
    # class ListNode(object):
    #     def __init__(self, x):
    #         self.val = x
    #         self.next = None
    
    class Solution(object):
        def rotateRight(self, head, k):
            """
            :type head: ListNode
            :type k: int
            :rtype: ListNode
            """
            if not head or k==0: return head
            cur = head
            n=1
            while cur.next:
                cur=cur.next
                n+=1
            
            n = n-k%n
            cur.next = head
            cur = head
            while n-1>0:
                cur=cur.next
                n-=1
    
            next = cur.next
            cur.next=None
            return next
            
           
    
  • 相关阅读:
    Sizzle之tokenize
    直转字符串为数组
    Sizzle前奏
    (242-528)
    (177-240)
    (92-176)
    (63~91)
    一些变量(39~62)
    mysql导入导出sql文件
    vim编辑器的一些操作
  • 原文地址:https://www.cnblogs.com/absolute/p/5678073.html
Copyright © 2011-2022 走看看