LeetCode:206反转链表

news2024/9/18 18:19:49

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

不难,小细节是单写一个循环,把特殊情况包含进去,

单链表核心:上一个结点,当前结点,下一个结点,

代码:+注释(算是最优解,不及格的)时O(n),空O(1)

对于另一种的递归方法有点拉跨 时O(n)空O(n)(在博主看来能循环做的基本就能递归做,而递归能做的循环不一定能做)

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode* reverseList(struct ListNode* head) {
    //assert(head);
    if(head == NULL){
        return head;
    }
    struct ListNode* ptmp2 = NULL;
    struct ListNode* ptmp1 = head;
    //第一次有些特殊,要置一个ptail->next = NULL来作为新链表的尾
    //写的不好,不如官方题解,把这第一种情况给塞进循环(还少了head == NULL这种情况的判断)
    //可以自己去链接里看官方题解,就是本代码的ptmp1 最开始置NULL来操作的
    head = head->next;
    ptmp1->next =NULL;
    while(head){
        ptmp2 = head->next;
        head->next = ptmp1;
        ptmp1 = head;
        head = ptmp2;
    }
    return ptmp1;
}

官方解法(相对于上面的是优化的)时O(n)空O(1)

这种做法就是最好的,博主犯病搞多了变量,虽然差距不大,但是不优雅了,悲,

 

struct ListNode* reverseList(struct ListNode* head) {
    struct ListNode* pReturn = NULL;
    while(head){
        struct ListNode* next = head->next;//写在这里,避免head为NULL造成的越界访问
        head->next = pReturn;
        pReturn = head;
        head = next;
    }
    return pReturn;
}

看到这里了,就来个三连吧,求求啦!(超大声!)(三连:点赞,收藏+关注)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1424708.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YOLOv5独家改进:上采样算子 | 超轻量高效动态上采样DySample,效果秒杀CAFFE,助力小目标检测

💡💡💡本文独家改进:一种超轻量高效动态上采样DySample, 具有更少的参数、FLOPs,效果秒杀CAFFE和YOLOv5网络中的nn.Upsample 💡💡💡在多个数据集下验证能够涨点,尤其在小目标检测领域涨点显著。 收录 YOLOv5原创自研 https://blog.csdn.net/m0_63774211/cate…

路由重定向和别名

聚沙成塔每天进步一点点 本文内容 ⭐ 专栏简介1. 路由重定向实例场景:路由重定向的应用场景: 2. 路由别名实例场景:路由别名的应用场景: ⭐ 写在最后 ⭐ 专栏简介 Vue学习之旅的奇妙世界 欢迎大家来到 Vue 技能树参考资料专栏&…

韶音、南卡、Oladance值不值得买?全面对比测评拒绝智商税!

​在目前市场上,有许多质量不佳、音质差的开放式耳机产品。这些产品不仅会影响音频的质量,还可能对用户的听力健康造成潜在风险。作为一名经验丰富的音频设备评测师,我深知在选择耳机时,必须谨慎选择那些具有专业实力的品牌。基于…

基于EdgeWorkers的边缘应用如何进行单元测试?

随着各行各业数字化转型的持续深入,越来越多企业开始选择将一些应用程序放在距离最终用户更近的边缘位置来运行,借此降低延迟,提高应用程序响应速度,打造更出色的用户体验。 相比传统集中部署和运行的方式,这种边缘应…

字段使用函数是否会走索引

之前的印象中,字段上使用了函数操作,查询不会走索引。 一,AI回答 回答1 回答2 回答3 二,测试样例 查询未来n天内所有数据 查询方式1 EXPLAIN SELECT * FROM vehicle_info WHERE annual_inspection_due_date BE…

Vulnhub靶机:hackme2-DHCP

一、介绍 运行环境:Virtualbox(攻击机)和VMware(靶机) 攻击机:kali(192.168.56.106) 靶机:hackme2-DHCP(192.168.56.107) 目标:获取靶机root权限和flag 靶机下载地址&#xff1…

重写Sylar基于协程的服务器(2、配置模块的设计)

重写Sylar基于协程的服务器(2、配置模块的设计) 重写Sylar基于协程的服务器系列: 重写Sylar基于协程的服务器(0、搭建开发环境以及项目框架 || 下载编译简化版Sylar) 重写Sylar基于协程的服务器(1、日志模…

厨师帽佩戴识别摄像机​

厨师帽佩戴识别摄像机是一种用于识别厨师是否佩戴帽子的智能设备,其作用在于强制执行食品安全卫生标准,防止头发掉落入食物中。该摄像机利用人工智能和图像识别技术,能够识别厨师是否佩戴厨师帽。当摄像机检测到厨师未佩戴帽子时,…

DNS服务实战:使用自定义域名访问Redis服务

前言 在这篇文章中,你将了解到如何在 CentOS 系统上安装 Redis 服务,并且掌握通过自定义域名来访问 Redis 服务的技巧。通过使用自定义域名,你可以方便地管理和访问你的 Redis 数据库,提高工作效率。无论你是开发者、系统管理员还是对 Redis 感兴趣的读者,这篇文章都会为…

Android 跳转应用设置/热点界面或等常用操作

Android 跳转应用设置/热点界面或等常用操作 https://www.jianshu.com/p/ba7164126690 android学习进阶——Setting https://blog.csdn.net/csdn_wanziooo/article/details/81980984 Android 7.1 以太网反射 EthernetManager 配置 DHCP、静态 IP https://codeleading.com/art…

UG949 适用于 FPGA 和 SoC 的UltraFast 设计方法指南

使用RTL创建设计 定义RTL设计层级 模块边界输出进行寄存 即寄存器输出,打一拍 IP的使用 AMBA AXI

C语言指针学习(1)

前言 指针是C语言中一个重要概念,也是C语言的一个重要特色,正确而灵活地运用指针可以使程序简洁、紧凑、高效。每一个学习和使用C语言的人都应当深入的学习和掌握指针,也可以说不掌握指针就没有掌握C语言的精华。 一、什么是指针 想弄清楚什…

springboot+AOP+RBAC自定义权限访问控制03

springbootAOPRBAC自定义权限访问控制03!今天我们做完了整个权限管理的内容。 内容比较多。请大家有足够的耐心看完。 首先。我们为了测试权限的鉴别效果,我们提前准备了一个新闻实体类,对应数据库的tb_news数据表。 我们提前准备好了新闻…

【Android 字节码插桩】Gradle插件基础 Transform API的使用

前言 啪~我给大家开个会(手机扔桌子上) 什么叫做 客户无感的数据脱敏!? 师爷给翻译翻译什么叫做客户无感的数据脱敏? 什么特么的叫做客户无感数据脱敏? 举个栗子~ 客户端Sdk新升级了一个版本,增…

150基于matlab的凸轮轮廓的设计计算与绘图计算此结构的最优化参数

基于matlab的凸轮轮廓的设计计算与绘图计算此结构的最优化参数,根据其原理输出推程和回程的最大压力角、最小曲率半径等相关结果。程序已调通,可直接运行。 150 凸轮轮廓的设计 结构的最优化参数 (xiaohongshu.com)

EasyExcel使用,实体导入导出

简介 Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中…

数据结构:图文详解 搜索二叉树(搜索二叉树的概念与性质,查找,插入,删除)

目录 搜索二叉树的相关概念和性质 搜索二叉树的查找 搜索二叉树的插入 搜索二叉树的删除 1.删除节点只有右子树,左子树为空 2.删除节点只有左子树,右子树为空 3.删除节点左右子树都不为空 搜索二叉树的完整代码实现 搜索二叉树的相关概念和性质 …

Java设计模式-组合模式(13)

大家好,我是馆长!今天开始我们讲的是结构型模式中的组合模式。老规矩,讲解之前再次熟悉下结构型模式包含:代理模式、适配器模式、桥接模式、装饰器模式、外观模式、享元模式、组合模式,共7种设计模式。 组合模式(Composite Pattern) 定义 组合(Composite)模式:又叫…

【大厂AI课学习笔记】1.3 人工智能产业发展(2)

(注:腾讯AI课学习笔记。) 1.3.1 需求侧 转型需求:人口红利转化为创新红利。 场景丰富:超大规模且多样的应用场景。主要是我们的场景大,数据资源丰富。 抗疫加速:疫情常态化,催生新…

(十一)springboot实战——springboot3下关于WebFlux项目的一些常用功能整合

前言 本节内容主要是对webflux项目一些常用功能的介绍,例如系统集成swagger接口文档,方便接口测试以及前后端项目联调测试;使用actuator完成系统各种指标的监控功能;系统使用logback日志框架完成项目日志的收集;使用过…