• Leetcode练习(Python):链表类:第92题:反转链表 II:反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。


    题目:
    反转链表 II:反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。

    反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。

    说明:
    1 ≤ m ≤ n ≤ 链表长度。

    示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL

    思路:

    思路较简单,找到规律就好。

    程序:

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

    class Solution:
        def reverseBetween(self, head: ListNode, m: int, n: int) -> ListNode:
            if not head:
                return head
            if m >= n:
                return head
            myNode = ListNode(0)
            myNode.next = head
            index1 = myNode
            num_rotate = n - m
            while m - 1:
                index1 = index1.next
                m -= 1
            index2 = index1.next
            index3 = index2.next
            while num_rotate:
                index2.next = index3.next
                index3.next = index1.next
                index1.next = index3
                index3 = index2.next
                num_rotate -= 1
            return myNode.next
  • 相关阅读:
    C# Cache的类方法
    a href="javascript:void(0)"
    细数银行7大手续费 这些冤枉钱别再交了
    mysql 中order by 与group by的顺序
    java springboot 将html页面转成图片
    SpringBoot读取Resource下文件的几种方式
    在CentOS 6.X中安装中文字体
    第三方api调用HttpClient
    java通过html生成pdf,支持css和图片以及横向打印
    nginx配置静态文件和服务代理
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12819970.html
Copyright © 2020-2023  润新知