当前位置: 首页 > news >正文

【力扣】206. 反转链表 <链表指针>

【力扣】206. 反转链表

给你单链表的头节点 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

题解

方法一:迭代

思想:将当前节点的 next 指针改为指向前一个节点。由于节点没有引用其前一个节点,因此必须事先存储其前一个节点。在更改引用之前,还需要存储后一个节点。最后返回新的头引用。

class Solution {public ListNode reverseList(ListNode head) {ListNode pre = null;ListNode cur = head;while (cur != null) {// 记录当前节点的下一个节点ListNode tmp = cur.next;// 然后将当前节点指向precur.next = pre;// pre和cur节点都前进一位pre = cur;cur = tmp;}return pre;}
}

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

方法二:递归

递归的重要两步:

  • 终止条件:
//递归终止条件是当前为空,或者下一个节点为空
if(head==null || head.next==null) {return head;
}
  • 在函数内部,改变节点的指向,也就是 head 的下一个节点指向 head 递归函数那句
head.next.next = head
// 其实就是 head 的下一个节点指向head

递归函数中每次返回的 cur 其实只是最后一个节点,在递归函数内部,改变的是当前节点的指向。

class Solution {public ListNode reverseList(ListNode head) {//递归终止条件是当前为空,或者下一个节点为空if(head==null || head.next==null) {return head;}//这里的cur就是找到的最后一个节点ListNode cur = reverseList(head.next);//如果链表是 1->2->3->4->5,那么此时的cur就是5,而head是4,head的下一个是5,下下一个是空,所以head.next.next 就是5->4head.next.next = head;//防止链表循环,需要将head.next设置为空,断掉head.next = null;//每层递归函数都返回cur,也就是最后一个节点return cur;}
}

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

相关文章:

【力扣】206. 反转链表 <链表指针>

【力扣】206. 反转链表 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1] 示例 2 输入&#xff1a;head [1,2] 输出&#xff1a;[2,1] 示例 3 输入&#xff1a…...

Java包装类(自动拆装箱)

包装类 为什么要有包装类&#xff1f; 在面向对象中&#xff0c;“一切皆为对象”&#xff0c;但是基本数据类型不符合这一理念&#xff0c;为了让基本类型也称为对象 便于类型之间的转化&#xff0c;数据类型之间的基本操作 转换方式&#xff1a; int ——> Integer ne…...

使用Golang反射技术实现一套有默认值的配置解析库

在实际开发中&#xff0c;我们往往会给一个逻辑设计一套配置文件&#xff0c;用于根据不同环境加载不同配置。 比如生产环境和测试环境数据库的地址不一样&#xff0c;我们就需要在配置文件中设置不同的值。但是配置文件中又有一些相同值的配置项&#xff0c;比如数据库的名称等…...

数据安全能力框架模型-详细解读(二)

数据安全能力框架构成 1&#xff09; 数据安全治理 管理视角&#xff1a;从组织制度流程上提出要求&#xff0c;由于数据在各业务系统之间流转&#xff0c;需要设立高级管理层参与决策的数据安全管理部门&#xff0c;统筹和规划多部门之间的工作&#xff1b;需要设立跨组织的…...

【BASH】回顾与知识点梳理(八)

【BASH】回顾与知识点梳理 八 八. 正则表达式&#xff08;正规表示法&#xff09;8.1 什么是正规表示法8.2 基础正规表示法语系对正规表示法的影响grep 的一些进阶选项基础正规表示法练习例题一、搜寻特定字符串例题二、利用中括号 [] 来搜寻集合字符例题三、行首与行尾字符 ^ …...

rust报错“Utf8Error { valid_up_to: 1, error_len: Some(1) } }”

这个错误通常表示在尝试将字节序列解码为UTF-8字符时出现问题。它指出在索引1处发现了无效的字节序列&#xff0c;并且错误的长度为1个字节。 要解决这个问题&#xff0c;你可以尝试以下几种方法&#xff1a; 检查你的输入数据是否包含无效的字节序列。你可以使用一些调试工具…...

【Linux】节点之间配置免密登录

文章目录 1、实现2、原理3、SSH的理解 1、实现 先写实现&#xff0c;解决问题后有兴趣的自己看后面的原理。 以实现节点A&#xff08;主&#xff09;免密登录到节点B&#xff08;从&#xff09;为例&#xff1a;&#xff08;注意例子里节点B被登录&#xff09; 步骤一&#xf…...

【13】STM32·HAL库-正点原子SYSTEM文件夹 | SysTick工作原理、寄存器介绍 | printf函数使用、重定向

目录 1.sys文件夹介绍&#xff08;掌握&#xff09;2.deley文件夹介绍&#xff08;掌握&#xff09;2.1deley文件夹函数简介2.2SysTick工作原理2.3SysTick寄存器介绍2.4delay_init()函数&#xff08;F1&#xff09;2.5delay_us()函数&#xff08;F1&#xff09;2.6delay_ms()函…...

ansible配置文件案例

案例一 控制主机上的普通用户控制受控主机 控制端1台&#xff0c;受控端两台 1.将两台受控主机添加到/etc/hosts文件中 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhos…...

【大数据】Flink 从入门到实践(一):初步介绍

Flink 从入门到实践&#xff08;一&#xff09;&#xff1a;初步介绍 Apache Flink 是一个框架和分布式处理引擎&#xff0c;用于在 无边界 和 有边界 数据流上进行 有状态 的计算。Flink 能在所有常见集群环境中运行&#xff0c;并能以内存速度和任意规模进行计算。 1.架构 1…...

大数据课程F4——HIve的其他操作

文章作者邮箱&#xff1a;yugongshiyesina.cn 地址&#xff1a;广东惠州 ▲ 本章节目的 ⚪ 掌握HIve的join&#xff1b; ⚪ 掌握HIve的查询和排序 ⚪ 掌握HIve的beeline ⚪ 掌握HIve的文件格式 ⚪ 掌握HIve的基本架构 ⚪ 掌握HIve的优化&#xff1b; 一、jo…...

React Native详解和代码实例

目录 一、React Native 的主要特点二、React Native 的工作原理三、React Native 的优缺点四、React Native 代码示例 React Native 是一个用于构建原生移动应用程序的 JavaScript 框架。它使用 React 库&#xff0c;允许开发者使用 JavaScript 编写应用程序的 UI 和逻辑&#…...

CAD随机球体颗粒过渡区3D插件

插件介绍 CAD随机球体颗粒&过渡区3D插件可用于在AutoCAD软件内生成随机分布的球体及球体外侧过渡区部件&#xff0c;适用于科研绘图、有限元建模如混凝土细观、颗粒增强复合材料、随机三维骨料及过渡区等方面的应用。 插件可指定的参数有模型的长、宽、高&#xff1b;球…...

【项目 进程12】2.25 sigprocmask函数使用 2.26sigaction信号捕捉函数 2.27SIGCHILD信号

文章目录 2.25 sigprocmask函数使用2.26 sigaction信号捕捉函数内核实现信号捕捉的过程信号捕捉特性 2.27SIGCHILD信号 2.25 sigprocmask函数使用 阻塞信号集有时称作信号掩码。 联想&#xff1a;fcntl函数可以修改fd属性。 ./sigprocmask & //将程序设置为后台运行&…...

【无标题】面试题 02.07. 链表相交

面试题 02.07. 链表相交 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点&#xff0c;返回 null 。 方法一&#xff1a;遍历headA&#xff0c;将每个节点add到HashSet中&#xff1b;然后遍历headB&#xf…...

Zotero ubuntu2023安装 关联 ubuntu文献翻译

一、准备下载的软件&#xff1a; Zotero | Downloads 1. Zotero-6.0.26_linux-x86_64.tar.bz2 下面是插件 zotfile-5.1.2-fx.xpi zotero-pdf-translate.xpi jasminum-v0.2.6.xpi 2.2.5 Tampermonkey 4.11.crx 所准备的文件&#xff0c;都已经在这个链接的压缩包下面 …...

Stable Diffusion教程(7) - PS安装AI绘画插件教程

配套教程视频&#xff1a;https://v.douyin.com/Uyux9F6/ 1. 前置条件 安装了stable diffusion 还没安装的从知识库安装 阿超的AI绘画知识库 语雀 安装了ps2023 还没安装的从网盘下载Win版 PS 2023【必须win10、11】.rar官方版下载丨最新版下载丨绿色版下载丨APP下载-12…...

如何学技术

#​如何学习技术​ 今天在学习redis时&#xff0c;看到了一位大佬写的如何学习技术的方法论&#xff0c;个人觉得很不错&#xff0c;这里分享给大家。 --- - 领先一步&#xff1a;保持好奇心 不给自己设限 真正走出舒适区之后&#xff0c;我看到了自己的飞速成长和进步&#…...

【云存储】使用OSS快速搭建个人网盘教程(阿里云)

使用OSS快速搭建个人网盘 一、基础概要1. 主要的存储类型1.1 块存储1.2 文件存储1.3 对象存储 2. 对象存储OSS2.1 存储空间2.2 地域2.3 对象2.4 读写权限2.5 访问域名&#xff08;Endpoint&#xff09;2.6 访问密钥2.7 常用功能&#xff08;1&#xff09;创建存储空间&#xff…...

微信小程序iconfont真机渲染失败

解决方法&#xff1a; 1.将下载的.woff文件在transfonter转为base64&#xff0c; 2.打开网站&#xff0c;导入文件&#xff0c;开启base64按钮&#xff0c;下载转换后的文件 3. 在下载解压后的文件夹中找到stylesheet.css&#xff0c;并复制其中的base64 4. 修改index.wxss文…...

如何用ComfyUI_FaceAnalysis精确量化AI生成人脸的相似度

如何用ComfyUI_FaceAnalysis精确量化AI生成人脸的相似度 【免费下载链接】ComfyUI_FaceAnalysis Extension for ComfyUI to evaluate the similarity between two faces 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI_FaceAnalysis 你是否曾经困惑于AI生成的人脸…...

为什么选择Xtreme Download Manager:500%下载加速的终极解决方案

为什么选择Xtreme Download Manager&#xff1a;500%下载加速的终极解决方案 【免费下载链接】xdm Powerfull download accelerator and video downloader 项目地址: https://gitcode.com/gh_mirrors/xd/xdm 在当今数字时代&#xff0c;下载速度直接影响着我们的工作效率…...

别再到处找教程了!手把手教你用CCProxy搭建个人SOCKS5代理服务器(附防火墙和杀软设置避坑)

零基础构建安全SOCKS5代理&#xff1a;CCProxy实战指南与深度避坑手册 在数字化办公与远程协作成为常态的今天&#xff0c;高效安全的网络访问能力已成为现代人的刚需。想象这样一个场景&#xff1a;你正在咖啡馆赶制一份急需提交的方案&#xff0c;却发现公司内网资源无法访问…...

vuepress-theme-hope开发者指南:如何扩展主题功能

vuepress-theme-hope开发者指南&#xff1a;如何扩展主题功能 【免费下载链接】vuepress-theme-hope A vuepress theme with tons of features✨ 项目地址: https://gitcode.com/gh_mirrors/vu/vuepress-theme-hope vuepress-theme-hope是一款功能丰富的VuePress主题&am…...

双鱼眼相机福音:实测CVPR2024的EfficientLoFTR,在纹理单调场景下拼接效果提升明显

双鱼眼相机拼接技术突破&#xff1a;EfficientLoFTR在低频纹理场景的实战评测 当双鱼眼相机遇到纯色墙面或空旷天空时&#xff0c;传统特征匹配算法就像突然失明的导航员——明明知道两个画面应该拼接&#xff0c;却找不到可靠的参考点。这种困境在安防监控、车载环视和VR内容制…...

别再死记公式了!用Multisim仿真带你玩转积分与微分运算电路

用Multisim仿真解锁积分与微分电路的实战奥秘 记得第一次在实验室搭建积分电路时&#xff0c;盯着示波器上扭曲的波形百思不得其解——为什么理论完美的三角波变成了畸变的锯齿&#xff1f;直到在Multisim里实时调整RC参数&#xff0c;才真正理解时间常数与波形失真的微妙关系。…...

HarmonyOS UI 开发中的 EventHub:终结“回调地狱”的通信轻骑兵

HarmonyOS UI 开发中的 EventHub&#xff1a;终结“回调地狱”的通信轻骑兵做 HarmonyOS UI 开发的兄弟&#xff0c;多半都经历过这样的血压飙升时刻&#xff1a;页面 A 嵌了组件 B&#xff0c;组件 B 里还有子组件 C。突然有一天&#xff0c;产品要求在 C 里打个响指&#xff…...

Marimo 高危预认证 RCE 漏洞已遭活跃利用

聚焦源代码安全&#xff0c;网罗国内外最新资讯&#xff01;编译&#xff1a;代码卫士开源响应式 Python 笔记本平台 Marimo 中存在一个严重漏洞CVE-2026-39987&#xff08;CVSS评分9.3&#xff09;&#xff0c;攻击者无需认证即可实现远程代码执行 (RCE)&#xff0c;影响 Mari…...

QT QRadioButton 自定义指示器样式:从入门到精通

1. 初识QRadioButton的指示器 第一次接触QT开发时&#xff0c;我发现QRadioButton默认的圆形指示器样式实在太过普通。那个小小的灰色圆圈&#xff0c;选中时变成黑色圆点&#xff0c;怎么看都像是Windows 95时代的产物。作为一个对UI有追求的开发者&#xff0c;我决定要改变这…...

RHCA考试全攻略:从报名到拿证,手把手教你避开那些坑

RHCA认证深度实战指南&#xff1a;从零到架构师的系统化进阶路径 红帽认证架构师&#xff08;RHCA&#xff09;作为Linux领域的顶级认证&#xff0c;早已超越单纯的技术考核&#xff0c;成为运维工程师职业发展的分水岭。不同于市面上大多数"题库背诵式"认证&#xf…...