• 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
  • 相关阅读:
    存储过程sql拼接
    收集 一个数字转大写金额的方法
    判断打印机是否可用
    TortoiseSVN解决冲突
    特殊符号
    [转]Winform用匿名方法新建线程的方法
    [转]利用SqlBulkCopy快速大批量导入数据(SqlBulkCopy强大)
    DevExpress GridControl使用
    GridView自动调整列宽
    'display','position'和'float'相互关系
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12819970.html
Copyright © 2020-2023  润新知