zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    SoftWater——SDN+UnderWater系列论文一
    《面向对象程序设计》2018年春学期寒假及博客作业总结
    2017级面向对象程序设计——团队作业3
    2017级面向对象程序设计——团队作业2
    生活
    一文搞懂transform: skew
    如何实现css渐变圆角边框
    使用腾讯云的图片缩略图服务
    谈谈实现瀑布流布局的几种思路
    vue cli 3 那些事儿
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12819970.html
Copyright © 2011-2022 走看看