【python-leetcode92-翻转链表】反转链表2

【python-leetcode92-翻转链表】反转链表2,第1张

概述问题描述: 反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明:1 ≤ m ≤ n ≤ 链表长度。 示例:

问题描述:

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

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

示例:

输入: 1->2->3->4->5->NulL,m = 2,n = 4输出: 1->4->3->2->5->NulL
class ListNode:    def __init__(self,x):        self.val=x        self.next=Nonen1=ListNode(1)n2=ListNode(2)n3=ListNode(3)n4=ListNode(4)n5=ListNode(5)n1.next=n2;n2.next=n3;n3.next=n4;n4.next=n5def printListNode(head):    while head != None:        print(head.val)        head=head.next#printListNode(n1) Solution:     reverseBetween(self,head,m,n):        if not head:            return None            cur,prev = head,None        while m > 1:            prev = cur            cur = cur.next            m,n = m - 1,n - 1        p2,p1 = cur,prev        while n:            third = cur.next            cur.next = prev            prev = third            n -= 1        if p1:            p1.next = prev        else:            head = prev        p2.next = cur         heads=Solution()s.reverseBetween(n1,2,4)printListNode(n1)

具体过程:

初始状态:

进入第一个while循环之后:

之后定义两个链接指针,p1,p2

进入第二个while循环:

第一步:

第二步:

第三步:

此时退出循环。

然后p1.next指向prev,p2.next指向cur 

总结

以上是内存溢出为你收集整理的【python-leetcode92-翻转链表】反转链表2全部内容,希望文章能够帮你解决【python-leetcode92-翻转链表】反转链表2所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/1190047.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存