LeetCode 206. 反转链表

使用 ONLYOFFICE API 构建 Java 转换器,在 Word 和 PDF 之间进行转换 随着文档处理需求的增加,格式转换成为了一个重要的需求点。由于PDF格式具有跨平台、不易被篡改的特性,将Word格式(.docx)转换为PDF格式(.pdf)的需求尤为强烈。ONLYOFFICE作为一个强大的办公套件,提供了这样的转换功能,使得用户可以轻松地在Word和PDF之间进行转换。 阅读详情

目录

头插法

递归法


206. 反转链表https://leetcode.cn/problems/reverse-linked-list/

头插法

我们看到, 链表中的节点数目范围是 0~5000, 所以我们的代码中要处理一下边界情况.

思路: 我们需要遍历一遍链表, 没遍历到一个节点, 我们就将这个节点拿下来尾插到一个新的空的链表上.

我们考虑一下边界情况, 如果说这个链表本身就是空的, 另一种情况, 这个链表只有一个节点, 我们就不需要反转了, 可以直接返回.

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */

class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        if (head == nullptr || head->next == nullptr) return head;

        ListNode *rList = new ListNode(0);
        ListNode *cur = head;
        while (cur)
        {
            ListNode *next = cur->next;
            cur->next = rList->next;
            rList->next = cur;
            cur = next;
        }
        cur = rList->next;
        delete rList;
        return cur;
    }
};

递归法

递归方法呢? 我们要找到最小子问题, 可以将链表想象成只有两个节点, 一个节点是头节点(当前节点), 指向下一个节点, 另一个是除了头节点以外剩下所有节点的总和, 指向nullptr. 我们只需要要让这代表这一串节点总和的节点去执行头节点, 让头节点指向空, 就完成了翻转. 有兴趣递归展开图大家可以画一下.

边界情况依然是只有一个节点或者空链表的情况.

class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        if (head == nullptr || head->next == nullptr) return head;

        ListNode *rList = reverseList(head->next);
        head->next->next = head;
        head->next = nullptr;
        return rList;
    }
};

水很深的深度学习(四): 卷积神经网络CNN 深度学习-CNN,卷积神经网络的概念 上世纪60年代,Hubel等人通过对猫视觉皮层细胞的研究,提出了感受野这个概念,到80年代,Fukushima在感受野概念的基础之上提出了神经认知机的概念,可以看作是卷积神经网络的第一个实现网络,神经认知机将一个视觉模式分解成许多子模式(特征),然后进入分层递阶式相连的特征平面进行处理 阅读详情

相关推荐

鸿蒙实战开发教程-注册登录页面

在密码输入框中,只要设置TextInput的类型就可以实现带眼睛logo的密码输入框效果:

2401_82546228的博客 3559

【LeetCode_206】反转链表

LeetCode第206题「反转链表」的C++解法

有梦想的电信狗 1734

基于 MATLAB 的综合能源系统建模案例 

电平衡约束:P_{gt}(t)+P_{grid}(t)-P_{eb}(t)-P_{load}(t)=0,其中 P_{grid}(t) 为与外部电网的交互功率(正表示购电,负表示售电)。- 电锅炉的热输出功率 Q_{eb} 与输入电功率 P_{eb} 的关系为:Q_{eb}=\eta_{eb}\times P_{eb},其中 \eta_{eb} 为电锅炉的热效率。- 燃气轮机的余热回收功率 Q_{gt} 与发电功率也存在一定关系,例如:Q_{gt}=c\times P_{gt},c 为余热回收比例系数。

qq_57128262的博客 1394

力扣每日一道系列 --- LeetCode 206. 反转链表

头插法的好处是无需遍历链表就可以直接修改指针关系,实现反转。这个算法的优点是只需要遍历一次链表就能完成反转操作,时间复杂度为。n1、n2 和 n3。

深入解析C/C++编程技巧,带你探索高效开发之路 1365

逆向实战:我是如何一步步解开美团外卖App的mtgsig3.0签名(附关键代码片段)

本文详细记录了逆向分析美团外卖App的mtgsig3.0签名算法的全过程,从抓包到算法还原,包括Java层和Native层的深度分析。通过Frida、IDA Pro等工具,揭示了签名生成的多层加密流程,并提供了关键代码片段。文章还探讨了逆向工程中的反调试对抗和签名时效性问题,为安全研究人员提供了宝贵的技术参考。

weixin_42530732的博客 867

Python爬虫实战:5分钟搞定Boss直聘数据抓取(附完整代理IP配置)

本文详细介绍了如何使用Python爬虫高效抓取Boss直聘的招聘数据,包括环境配置、反爬策略、数据采集与存储、数据分析等完整流程。通过实战案例,帮助开发者快速掌握招聘市场数据抓取技术,为职业决策提供数据支持。

weixin_30832143的博客 346

递归-206.反转链表-力扣(LeetCode)

链表可以看作一棵特殊的树,将横着摆放的链表竖直摆放,此时再看就有点树的感觉了。后序遍历是一种二叉树的遍历方法,即先左子树、右子树、根的顺序遍历二叉树,与其相似的还有前序遍历和中序遍历,它们的区别在于根访问的位置,第一个就访问的根就是前序遍历,在中间就是中序遍历,在最后就是后序遍历。接下来看一看具体过程。我们的重复子问题是,将当前节点后面的链表反转,所以需要一个ListNode*类型的变量。由于我们还需要返回新的头指针,所以返回值类型也是ListNode*。题目给我们提供的函数就可以拿过来直接用。

black_bear_white的博客 1176

【25届数字IC秋招总结】面试经验7——联发科

25届数字ic面试记录——联发科

lalala0635的博客 981

力扣LeetCode第206题反转链表

力扣LeetCode第206题反转链表

weixin_44061444的博客 227

Jetson Orin 上拉取 GMSL 相机流并保存在 DMA 内存中

本文介绍了在NVIDIA Jetson Orin平台上实现GMSL相机DMA内存共享的低延迟采集方案。通过V4L2+NvBufSurface技术,将相机数据直接存入DMA缓冲区,避免传统流程中的CPU拷贝开销。文章详细说明了设备初始化、DMA缓冲区分配、V4L2绑定等关键步骤,并展示了调用示例。该方案支持零拷贝访问,适用于AI推理、硬件编码等场景,能显著提升车载视觉系统的实时性能,为多路GMSL相机接入和低延迟处理提供了高效解决方案。

J。 695

TIM 2024 | AD-YOLO:一种结合 Swin Transformer 和注意力机制的实时 YOLO 网络用于机场场景检测

实时获取机场场景信息对于保障机场安全和提升机场运营效率至关重要。然而,机场场景图像中的人员和车辆目标尺寸较小,而且公开的机场数据不足,这使得机场物体检测成为一项颇具挑战的任务,难以同时实现高精度和实时检测。本文提出了一种全新的机场物体检测方法——机场检测器YOLO(AD - YOLO),它融合了改进的你只看一次(YOLO)算法、Swin Transformer和注意力机制的优势,以应对这一挑战。

小白学视觉 315

力扣-206反转链表

本文详细介绍了力扣(LeetCode)反转链表问题的解题思路与实现方法。文章首先分析了问题的核心——通过调整链表节点的指针指向实现反转。随后,重点介绍了两种解题方法:迭代法和递归法。迭代法通过循环调整指针,时间复杂度为O(n),空间复杂度为O(1);递归法则利用递归调用完成反转,时间复杂度为O(n),空间复杂度为O(n)。文章还总结了两种方法的优缺点,并探讨了反转链表的应用场景和扩展思考。通过本文,读者可以快速掌握反转链表的实现技巧,并应用于实际问题中。

i20030308lfj的博客 476

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

(力扣)LeetCode206. 反转链表(C语言)

(力扣)LeetCode206. 反转链表(C语言)。简单的迭代法,思路清晰,附带详细注释。觉得递归太难的小伙伴,推荐来学习更直观好用的迭代法~

墨染 601

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【力扣题解】LeetCode206. 反转链表

题目链接:https://leetcode-cn.com/problems/reverse-linked-list/

有道无术, 术尚可求。有术无道, 止于术。 1471

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

反转链表(LeetCode 206)

从倒数第二个节点开始反转,依次向前,将后一个节点的 next 指向当前节点。注意每次反转后要将当前节点的 next 置空,表示断开当前节点与后一个节点的关联。由于每次递归都需要为实参分配空间,所以相较于非递归实现,较耗费栈空间,且不易理解。给定单向链表 1->2->3->4->5,反转后为 5->4->3->2->1。给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。出题公司:腾讯、阿里、百度、字节、虾皮等,极其热门,务必掌握。给定单向链表 1->2->3,反转后为 3->2->1。

Doublelv 的博客专栏。 8073

LeetCode 206. 反转链表 java

LeetCode 206. 反转链表 java 反转一个单链表。 示例 : 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL JAVA 代码: class Solution { public ListNode reverseList(ListNode head) { ...

lele的专栏 797

《LeetCode力扣练习》第206题 反转链表 Java

《LeetCode力扣练习》第206题 反转链表 Java 一、资源 题目: 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head = [1,2] 输出:[2,1] 示例 3: 输入:head = [] 输出:[] 提示: 链表中节点的数目范围是 [0, 5000] -5000 <= Node.val <= 5000 进阶:链表可以选用迭代或递归方式完成反

XRT_knives的博客 333

【力扣】_206反转链表

package Leetcode真题分门别类.链表; /** * @Author bennyrhys * @Date 2020-05-29 11:42 * * 思路: * 链表翻转,直接改变指针指向 * 保存状态需要创建三个指针(pre前 cur当前 next下一个) * * 复杂度: * 时间O(N) * 空间O(1) * * 注意while处正好判断cur是否为空的情况,返回头节点为末尾null的前一个节点cur * */ import 玩转数据结构.链表看递归.移除链

瑞新の博客:bennyrhys 1662

力扣206.反转链表(java)

力扣206.反转链表题目思路代码 LeetCode笔记汇总 题目 思路 双指针迭代 迭代的思想是从左边开始两两交换链表中的节点。交换两个节点,使用一个长度为3的滑动窗口。窗口中的元素分别为pre,cur,temp。实际交换的是前两个节点,第三个temp节点主要用于存储,避免在改变cur.next后访问不到原链表中cur后面的元素。最开始时让pre指向null,从而达到将第一个节点的next置空的目的,否则将始终指向原链表的第二个元素。每次交换之后让三个指针后移一位即可,直至cur指针为空。 递归 代码

k_surge的博客 469

leetcode力扣206题反转链表及小注意点

力扣题里面的头结点是第一个结点,并不是通常意义上的首个无数值意义的结点。

xiaohao0001abc的博客 243

力扣206 反转链表

之前链表的头节点是元素1, 反转之后头结点就是元素5 ,这里并没有添加或者删除节点,仅仅是改变next指针的方向。那么接下来看一看是如何反转的呢?我们拿有示例中的链表来举例,如动画所示:(纠正:动画应该是先移动pre,在移动cur)首先定义一个cur指针,指向头结点,再定义一个pre指针,初始化为null。然后就要开始反转了,首先要把 cur->next 节点用tmp指针保存一下,也就是保存一下这个节点。

2202_75601845的博客 673

Leetcode 206 反转链表 Java

Leetcode 206 反转链表 这道题比较基础,记一下分别使用递归和迭代的方法。 //迭代 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ ...

qxdPx的博客 329

206. 反转链表(力扣LeetCode)

通过不断地将 cur->next 指向 pre 并递归调用 reverse,链表被逐个节点反转,直到 cur 为 nullptr,意味着链表已经完全反转,此时 pre 是新链表的头节点。这里使用了迭代法,不断地更改当前节点的 next 指针,直到遍历完整个链表。反转过程中,需要一个额外的指针 tmp 来保存下一个节点的信息,以防止链表断裂。给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。输入:head = [1,2,3,4,5]输入:head = [1,2]输出:[5,4,3,2,1]

m0_73841621的博客 736

LeetCode第206题反转链表(Python)

LeetCode第206题反转链表(Python)题目描述解题方法和思路定义游标用于反转(O(n)O(n)O(n))迭代 题目描述 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 来源:力扣(LeetCode) 链接:https://leetcode-cn.com...

qq_21407487的博客 603

题解 力扣 LeetCode 206 反转链表 C/C++ 三种思路

可以用迭代和递归来做,每种又可以具体写成不同样子,这里给出三种不同思路的代码 先说迭代: 遍历整个链表 第一个节点是将来的最后一个节点,令它指向 NULL 之后的每个节点指向之前的节点即可,每次反转前都要记录一下下一个节点 否则会和之后的节点断开联系 former 用来记录之前的节点 latter 用来在该次反转前记录下一个节点 p 不为 NULL 就继续执行,结束执行后返回 p 循环体上半部分结束后判断 latter,因为我们要返回 p 作为最后一个节点的地址 所以不能让 p == NULL

qwq_ovo_pwp的博客 2346

LeetCode206反转链表

反转链表:给你单链表的头节点head,请你反转链表,并返回反转后的链表。

djjd46的博客 1129
上一篇: MySQL数据库 详谈数据类型
下一篇: MySQL数据库 详谈表的约束
万我.
博客等级 码龄1年 460粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值