leetcode第92题python版反转链表头插法

pythonleetcode)——链表 菜鸡的刷记录,基础知识不会写太多,有时间会写专复习基础知识。第一轮刷,所以解代码可能都比较冗余/难看,主要是追求先有思路和会写。 更多优雅代码请参考解区或评论区的大佬~ 一、 链表(Linked List) 链表,是线性表的式存储结构。一个链表中有若干个结点,每个结点都包含数据域和地址域两部分。数据域用于存储元素,地址域用于存储前驱或后继的地址。 单链表: 每个结点只有一个地址域的线性链表; 双链表: 每个结点都有两个地址域,分别指向前驱结点和后继结点。 二、实战 1. leetcode20 阅读详情
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    """
    92. 反转链表 II
    给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。
    """
    def reverseBetween(self, head: ListNode, left: int, right: int) -> ListNode:
        # 思路:头插法,一次遍历,遍历的同时反转
        # 1. 初始化及特殊处理
        dummy = ListNode(0, head)
        pre = dummy
        # cur = head

        # 2. 遍历
        # 将pre节点移动到left前一个节点
        for _ in range(left - 1):
            # pre.next = pre
            pre = pre.next
        # 将当前节点指向left节点
        cur = pre.next
        # 将next节点指向left的下一个节点
        # next = cur.next # 易错点
        # 关键部分:头插法,注意移动right-left-1次;头插法就是每次将下一个值插到头节点的后面,
        # 这里就是将cur.next插入到pre的后面
        for _ in range(right - left):
            next = cur.next
            cur.next = next.next
            next.next = pre.next
            pre.next = next

        # 3. 返回结果值
        return dummy.next
避开这5个坑!STC8H DMA串口通信的实战避坑指南(115200波特率实测) 本文深入解析了STC8H单片机利用DMA实现稳定全双工串口通信的实战要点。针对115200高波特率场景,详细拆解了DMA-UART架构、关键寄存器配置、时钟精度计算、缓冲区管理及中断协同等核心环节,并提供了具体的避坑指南和调试方,帮助开发者构建高效可靠的通信路。 阅读详情

相关推荐

(二)使用VS2022克隆下载C++自制植物大战僵尸游戏教程

本文将介绍如何使用VS2022克隆下载《植物大战僵尸C++自制本》。Gitee项目地址:Gitee仓库地址Github项目地址:Github仓库地址游戏官网地址(下载可直接运行)游戏官网。

尔灵尔亿的博客 4786

leetcode92. 反转链表 II(python

思路详见注释 # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def reverse(self, head): pre = head cur = head.next .

Rudy的博客 514

leetcode全套解答python

leetcode全套解答python本。包括更新到10月份的的leetcode

LeetCode92:反转链表ll 【python 递归与迭代方全解析】

本文详细讨论了链表反转的三种方:迭代、全递归和局部递归,提供了代码实现,并比较了它们的效率和适用场景。

10年数据\经营分析经验,现任大厂数据分析负责人 522

Python | Leetcode Python解之第92反转链表II

Python | Leetcode Python解之第92反转链表II

Mopes__的博客 468

LeetcodePython92.反转链表II

1 目 给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。 2 解析 (1)第一种:头 (2)第二种:迭代,先截取中间部分,然后反转,再连接两头 (3)第三种:递归 待更新 3 Python实现 class Solution: # 方一:头 ''' def reverseBetween(self, head: ListNo

BetterBench的博客 770

Leetcode日记:92. 反转链表 II(PYTHON)

反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明: 1 ≤ m ≤ n ≤ 链表长度。 示例: 输入: 1-&gt;2-&gt;3-&gt;4-&gt;5-&gt;NULL, m = 2, n = 4 输出: 1-&gt;4-&gt;3-&gt;2-&gt;5-&gt;NULL 第一次的代码: 首先找到m的位置,以及n的位置,用列表c储存m到n区间的值,然后再将c区间的值反向添加到...

weixin_44033136的博客 493

LeetCode92_反转链表II

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

qq_40263592的博客 2647

92. 反转链表 II - 力扣(LeetCode

cur.next 指向 pre.next(节点 1 的 next 是节点 2,所以 cur.next 指向节点 2,形成循环)。cur.next 指向 pre.next(节点 2),将节点 3 入到节点 2 后面。cur.next 指向 pre.next(节点 3),将节点 4 入到节点 3 后面。此时节点 2 tail.next 指向 nxt(节点 4),保持剩余链表的连接。pre.next 断开与节点 2 的连接,更新为 cur(节点 3)。链表结构为 1->4->3->2->5->NULL。

q1111111da的博客 958

leetcode训练 92. Reverse Linked List II

这道是第206的升级,与206不同的是,这道限制了反转的范围。 206的代码如下: # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def reverseList(self, head: ListNode) -> ListNode:

Ema1997的博客 383

leetcode—14.链表反转python解答

文章目录引言206. 反转链表92. 反转链表 II25. K 个一组翻转链表 引言   反转目,可以通过迭代与递归来解决,这篇文章主要讲述迭代方,递归方会在后面介绍到。 206. 反转链表 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL class Solution: def reverseList(self, head: ListNode) -&g

柳杰的博客 450

92.反转链表python

请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表。:反转完成后,将反转后的子链表重新连接回原链表中。具体来说,就是将反转部分的前驱节点指向新的头节点,并将反转部分的尾节点(即原来的头节点)指向反转部分之后的第一个节点。如果原头节点没有被包含在反转范围内,则直接返回哑节点的下一个节点;否则返回哑节点的下一个节点作为新头节点。输入:head = [1,2,3,4,5], left = 2, right = 4。个节点,这个节点将是反转部分的前驱节点。输出:[1,4,3,2,5]

sysu63的博客 396

Leetcode链表之:92.反转链表的中间一段

目描述: 反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明: 1 ≤m≤n≤ 链表长度。 示例: 输入: 1->2->3->4->5->NULL, m = 2, n = 4 输出: 1->4->3->2->5->NULL 来源:力扣(LeetCode接:https://leetcode-cn.com/problems/reverse-linked-list-ii 解思路与代码: ### 解思路 ...

lu_yunjie的专栏 532

leetcode92. 反转链表 II

92. 反转链表 II https://leetcode-cn.com/classic/problems/reverse-linked-list-ii/ 反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明: 1 ≤ m ≤ n ≤ 链表长度。 示例: 输入: 1->2->3->4->5->NULL, m = 2, n = 4 输出: 1->4-...

看清这个世界 443

两种链表反转的方(头和原地反转,图解清晰,一看就会)

关于链表反转的方,包含原地反转和头反转

zhang050118的博客 3577

反转链表-头反转

1)思想是指在原有链表的基础上,依次将位于链表头部的节点摘下,然后采用从头部入的方式生成一个新链表,则此链表即为原链表反转。一开始创建一个新的头结点,然后在创建一个temp指针。...

有朋自远方来,不亦乐乎。 2117

python链表的逆置(头

python逆置单链表 逆置的方不止一种,本文给出头逆置单链表的方。 1、链表节点定义 class Node: def __init__(self,data): self.data=data self.next=None 2、头逆置单链表 def headInsert_reverse(head): if head==None o...

弃文从武貌若潘安的大兄弟 3195

leetcode92.反转链表2(Python实现)

目: 目来源:Leetcode 链表反转思路我们很熟悉,此多了一步为 翻转区间 [m,n]上的节点,因此我们要先找到m处的节点以及前驱,将链表在此处断开,再在m处往后数n-m个节点,并对该段的节点实现翻转,最后将链表连接起来即可。代码如下: 在这里入代码片 ...

airen的博客 774

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

力扣原: 先贴代码: public class Solution92 { public ListNode reverseBetween(ListNode head, int left, int right) { //创建一个虚拟头节点以处理需要反转的节点是头节点的情况 ListNode newhead = new ListNode(-1); newhead.next = head; //创建cur节点使其指向left节点的.

小型骷髅的博客 4432

编程训练第七十期——反转链表 II

编程问: 给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。 示例: 输入:head = [1,2,3,4,5], left = 2, right = 4 输出:[1,4,3,2,5] 输入:head = [5], left = 1, right = 1 输出:[5] 解: 1.迭代反转 时间复杂度O(N) 空间复杂度O(1) /** * Definit

yudi4789的博客 288

迅雷影音-在线视频(axure原型文件).rar

迅雷影音-在线视频(axure原型文件).rar 是一款专业的系统原型设计文件,它以迅雷影音为研究对象,通过Axure这一流行的原型设计工具,为用户呈现了一个直观、易用的在线视频播放平台。这个原型文件包含了丰富的页面元素和交互设计,涵盖了用户在观看在线视频时可能遇到的各种场景,如视频搜索、播放、暂停、快进、快退、全屏等功能。在这个原型文件中,设计师充分考虑了用户体验,将复杂的功能模块进行了合理的划分和布局,使得整个界面看起来简洁、清晰。同时,通过细致的交互设计,用户可以在不离开当前页面的情况下完成各种操作,大大提高了用户的使用便捷性。此外,这个原型文件还具有很好的可扩展性和可维护性。设计师在设计过程中,充分考虑了未来可能出现的需求变更和技术更新,使得这个原型文件可以灵活地适应各种变化,为后续的产品迭代和升级提供了有力的支持。总之,迅雷影音-在线视频(axure原型文件).rar 是一款非常优秀的系统原型设计文件,它不仅为用户提供了一个高效、便捷的在线视频播放平台,还为设计师提供了一个极具参考价值的原型设计范例。无论是对于产品经理、UI设计师还是前端开发人员,这个原型文件都是一个难得的学

上一篇: leetcode第110题python版平衡二叉树
下一篇: leetcode第121题python版买卖股票的最佳时机一次遍历两次更新法
ICPunk
博客等级 码龄16年 14粉丝 137原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ICPunk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值