LeetCode-92. 反转链表 II【链表】

题目描述:

给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。

示例 1:
在这里插入图片描述

输入:head = [1,2,3,4,5], left = 2, right = 4
输出:[1,4,3,2,5]
示例 2:

输入:head = [5], left = 1, right = 1
输出:[5]

提示:

链表中节点数目为 n
1 <= n <= 500
-500 <= Node.val <= 500
1 <= left <= right <= n

解题思路一:简单的翻转链表操作

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def reverseBetween(self, head: Optional[ListNode], left: int, right: int) -> Optional[ListNode]:
        p0 = dummy = ListNode(next=head)
        for _ in range(left-1):
            p0 = p0.next
        
        pre = None
        cur = p0.next
        for _ in range(right - left + 1):
            nxt = cur.next
            cur.next = pre
            pre = cur
            cur = nxt

        p0.next.next = cur # 让 转头 指向 后面
        p0.next = pre # 让 前 指向 转尾
        return dummy.next

时间复杂度:O(n)
空间复杂度:O(1)

背诵版:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def reverseBetween(self, head: Optional[ListNode], left: int, right: int) -> Optional[ListNode]:
        p0 = dummy = ListNode(next = head)
        for _ in range(left - 1):
            p0 = p0.next

        pre = None
        cur = p0.next
        for _ in range(right - left + 1):
            nxt = cur.next
            cur.next = pre
            pre = cur
            cur = nxt

        p0.next.next = cur
        p0.next = pre
        return dummy.next

时间复杂度:O(n)
空间复杂度:O(1)

解题思路三:0


时间复杂度:O(n)
空间复杂度:O(n)


创作不易,观众老爷们请留步… 动起可爱的小手,点个赞再走呗 (๑◕ܫ←๑)
欢迎大家关注笔者,你的关注是我持续更博的最大动力


原创文章,转载告知,盗版必究



在这里插入图片描述


在这里插入图片描述
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠

相关推荐

  1. leetcode 92. II

    2024-06-06 20:22:02       11 阅读
  2. 【递归】 92. II

    2024-06-06 20:22:02       33 阅读
  3. 【算法题】92. II

    2024-06-06 20:22:02       27 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-06 20:22:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-06 20:22:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-06 20:22:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-06 20:22:02       18 阅读

热门阅读

  1. 探索未来科技的前沿:从量子计算到人机融合

    2024-06-06 20:22:02       8 阅读
  2. 一些常用的 ADB(Android Debug Bridge)命令

    2024-06-06 20:22:02       11 阅读
  3. QT窗口类型以及非模态窗口如何显示在顶层

    2024-06-06 20:22:02       9 阅读
  4. Python 变量标签:深入解析其用法与影响

    2024-06-06 20:22:02       8 阅读
  5. AI绘图工具最全汇总--你适合哪一款

    2024-06-06 20:22:02       8 阅读
  6. Go 发送邮件的两种方式

    2024-06-06 20:22:02       8 阅读
  7. JZ2440笔记:rtc驱动

    2024-06-06 20:22:02       10 阅读
  8. 运用selenium爬取京东商品数据储存到MySQL数据库中

    2024-06-06 20:22:02       11 阅读
  9. 作业6.6

    作业6.6

    2024-06-06 20:22:02      8 阅读
  10. SpringBoot默认配置文件

    2024-06-06 20:22:02       8 阅读
  11. PyQt5学习系列之ui转py后的使用

    2024-06-06 20:22:02       8 阅读