zoukankan      html  css  js  c++  java
  • LeetCode:61. 旋转链表

    1、题目描述

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

    示例 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
    

    2、题解

    2.1、解法一

    # 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
            """
            node = ListNode(0)
            node.next = head
            if head == None:
                return None
            elif head.next == None:
                return head
    
            count = 0
            cur = node.next
            while cur:
                cur = cur.next
                count += 1
            i = 0
            k = k%count
            while i < k:
                cur = node.next
                prev = cur
                while cur.next:
                    prev = cur
                    cur = cur.next
                cur.next = node.next
                node.next = cur
                prev.next = None
                i += 1
            return node.next
    

      

  • 相关阅读:
    表连接问题
    public interface Serializable?标记/标签接口
    4.21
    第十周周记
    测试
    第九周周记
    第七周周记
    fighting.
    fighting
    作业一
  • 原文地址:https://www.cnblogs.com/bad-robot/p/10065380.html
Copyright © 2011-2022 走看看