首页 > 其他 > 详细

leetcode-92-反转链表②

时间:2019-07-13 16:34:00      阅读:89      评论:0      收藏:0      [点我收藏+]

题目描述:

技术分享图片

方法一:

技术分享图片

class Solution:
    def reverseBetween(self, head: ListNode, m: int, n: int) -> ListNode:
        dummy = ListNode(0)
        dummy.next = head
        pre = dummy
        for i in range(m-1):
            pre = pre.next
        start = pre.next
        trail = start.next
        for i in range(n-m):
            start.next = trail.next
            trail.next = pre.next
            pre.next = trail
            trail = start.next
        return dummy.next

 方法二:

找到要翻转部分的链表,将其翻转,再与原链表拼接;

# 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:
        dummy = ListNode(0)
        dummy.next = head
        pre = dummy
        for i in range(m-1):
            pre = pre.next
        node =None
        cur = pre.next
        for i in range(n-m+1):
            tmp = cur.next
            cur.next = node
            node = cur
            cur = tmp
        pre.next.next = cur
        pre.next = node
        return dummy.next
            

 

leetcode-92-反转链表②

原文:https://www.cnblogs.com/oldby/p/11180942.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!