• Leetcode61 旋转链表


     
     

    给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。

    示例 1:

    输入: 1->2->3->4->5->NULL, k = 2
    输出: 4->5->1->2->3->NULL
    解释:
    向右旋转 1 步: 5->1->2->3->4->NULL
    向右旋转 2 步: 4->5->1->2->3->NULL
    示例 2:

    输入: 0->1->2->NULL, k = 4
    输出: 2->0->1->NULL
    解释:
    向右旋转 1 步: 2->0->1->NULL
    向右旋转 2 步: 1->2->0->NULL
    向右旋转 3 步: 0->1->2->NULL
    向右旋转 4 步: 2->0->1->NULL

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/rotate-list
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    # Definition for singly-linked list.
    # class ListNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.next = None

    class Solution:
        def rotateRight(self, head: ListNode, k: int) -> ListNode:
            if not head:
                return None
            if k==0:
                return head
            p=head
            q=head
            t=None
            list_len=0
            count=1
            i=0
            while i <k:
                if q.next is None:
                    t=q
                    list_len=count
                    k=k%list_len+count
                    q.next=head
                # print(list_len)
                q=q.next
                count+=1
                i+=1
                
            while q!=t and q.next is not None:
                q=q.next
                p=p.next
            q.next=head
            head=p.next
            p.next=None
            return head
  • 相关阅读:
    Eclipse 插件Maven在使用 add dependency,找不到包,解决办法
    SimpleDateFormat是线程不安全的,切忌切忌!
    JNative 传递参数bug
    oracle存储过程递归调用
    oracle调用DLL
    telnet和Netstat使用
    notepad++搭配dev配置运行C++
    ubuntu第一次安装登陆密码不正确问题
    区分形参和实参
    爬虫2
  • 原文地址:https://www.cnblogs.com/BetterThanEver_Victor/p/12844834.html
Copyright © 2020-2023  润新知