码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-05-02 22:56:54      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:eve   solution   反转   null   说明   思路   练习   lin   reverse   

题目:
反转链表 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

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

标签:eve   solution   反转   null   说明   思路   练习   lin   reverse   

原文地址:https://www.cnblogs.com/zhuozige/p/12819970.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!