Leetcode206:反转链表

一、题目

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

输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]输入:head = [1,2]
输出:[2,1]输入:head = []
输出:[]

二、题解

1.头插法

构造一个新链表,从旧链表中取出节点,一个个插入到新链表的头部,最后就逆序了。
在这里插入图片描述

public static Node reverseList1(Node head) {//新链表的头节点Node node = null;//遍历旧链表while (head != null) {//每次都创建一个新节点,放在新链表的头部(当前链表的next是之前的node)node = new Node(head.value, node);//让旧链表的头指针往下移动一位head = head.next;}return node;
}
2.双指针
  • 1.因为要改变指针的方向,会丢失掉原本next的指针,所以让next元素先暂存起来:ListNode temp = head.next;
  • 2.改变cur指针的指向(head指针)head.next = pre;
  • 3.让pre和cur同时向后移动 pre = head; head = temp;
  • 4.当cur指向到null时,遍历完毕 head!=null
    在这里插入图片描述
public Node reverseList(Node head) {Node pre = null;while(head!=null){//把当前节点的后一个节点暂存到tempNode temp = head.next;head.next = pre;pre = head;head = temp;}return pre;
}
3.递归

通过递归调用每次让头指针往后移,即相当于执行了head = head.next
在递归内部的操作把指针的指向改变,为了防止循环引用,在改变完当前节点的指向后,还要把前一个节点的指针指为空。
image.png

public static Node reverseList(Node head) {if (head == null || head.next == null) {return head;}//返回最后的节点Node node = reverseList(head.next);head.next.next = head;head.next = null;return node;
}

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

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

相关文章

[ESP32 IDF]web server

目录 通过web server控制LED 核心原理解析 分区表 web server的使用 错误Header fields are too long的解决 通过web server控制LED 通过网页控制LED灯的亮灭,一般的ESP32开发板都可以实现,下面这篇文章是国外开发者提供的一个通过web server控制…

13.2K Star,12306 抢票助手帮你回家

Hi,骚年,我是大 G,公众号「GitHub指北」会推荐 GitHub 上有趣有用的项目,一分钟 get 一个优秀的开源项目,挖掘开源的价值,欢迎关注。 马上过年了,今年你在哪里过年?回老家吗&#x…

前端入门第一天

目录 HTML超文本标记语言——Hyper Text Markup Language 标签语法: 双标签: 单标签——只有开始标签,没有结束标签 基本骨架: 标签的关系: 注释: 标题标签:(新闻标题、文章标题、网页区域…

探索设计模式的魅力:为什么你应该了解装饰器模式-代码优化与重构的秘诀

设计模式专栏:http://t.csdnimg.cn/nolNS 开篇 在一个常常需要在不破坏封装的前提下扩展对象功能的编程世界,有一个模式悄无声息地成为了高级编程技术的隐形冠军。我们日复一日地享受着它带来的便利,却往往对其背后的复杂性视而不见。它是怎样…

项目安全-----加密算法实现

目录 对称加密算法 AES (ECB模式) AES(CBC 模式)。 非对称加密 对称加密算法 对称加密算法,是使用相同的密钥进行加密和解密。使用对称加密算法来加密双方的通信的话,双方需要先约定一个密钥,加密方才能加密&#…

C++ 动态规划 线性DP 最长共同子序列

给定两个长度分别为 N 和 M 的字符串 A 和 B ,求既是 A 的子序列又是 B 的子序列的字符串长度最长是多少。 输入格式 第一行包含两个整数 N 和 M 。 第二行包含一个长度为 N 的字符串,表示字符串 A 。 第三行包含一个长度为 M 的字符串,表…

Servlet+Ajax实现对数据的列表展示(极简入门)

目录 1.准备工作 1.数据库源(这里以Mysql为例) 2.映射实体类 3.模拟三层架构(Dao、Service、Controller) Dao接口 Dao实现 Service实现(这里省略Service接口) Controller层(或叫Servlet层…

【blender插件】(1)快速开始

特性 blender的python API有如下特性: 编辑用户界面可以编辑的任意数据(场景,网格,粒子等)。修改用户首选项、键映射和主题。运行自己的配置运行工具。创建用户界面元素,如菜单、标题和面板。创建新的工具。场景交互式工具。创建与Blender集成的新渲染引擎。修改模型的数据…

LeetCode.1686. 石子游戏 VI

题目 题目链接 分析 本题采取贪心的策略 我们先假设只有两个石头a,b, 对于 Alice 价值分别为 a1,a2, 对于 Bob 价值而言价值分别是 b1,b2 第一种方案是 Alice取第一个,Bob 取第二个,Alice与Bob的价值差是 c1 a1 - b1&#xf…

【Crypto | CTF】BUUCTF rsarsa1

天命:第二题RSA解密啦,这题比较正宗 先来看看RSA算法 这道题给出了 p,q,E,就是给了两个质数和公钥 有这三个东西,那就可以得出私钥了 最后把私钥和质数放进去解密即可得到解密后的明文 from gmpy2 impor…

会计的记账凭证

目录 一. 记账凭证的填制与审核1.1 收付款凭证1.2 转账凭证1.3 单式记账凭证 二. 记账凭证的编号 \quad 一. 记账凭证的填制与审核 \quad \quad 1.1 收付款凭证 \quad 注意︰ 凡是涉及货币资金之间收付款的业务如将库存现金存入银行或从银行提取现金等类经济业务。在实际工作中…

程序员的悲哀:知名Python库requests作者失业了

在当今这个快速发展的科技时代,程序员作为创新的驱动力,一直被视为时代的宠儿。然而,即使在这样一个充满机会的领域,也有着不为人知的辛酸。近日,一个令人震惊的消息传遍了编程社区:知名Python库requests的…

css1基础选择器

大纲 一.标签选择器 比较简单,前面直接写目标标签 二.类选择器 应用 例子 三.多类名选择器(调用时中间用空格隔开) 四.id选择器 应用 五.通配符选择器 应用 六.总结

gRPC使用详解

起源特点主要优缺点应用场景组成部分使用方法SpringBoot集成gRPCVert.x集成gRPCNacos集成gRPC监控gRPC调用过程Java使用示例 起源 gRPC的起源可以追溯到2015年,当时谷歌发布了一款开源RPC框架,名为gRPC。gRPC的设计初衷是为了提供一种标准化、可通用和跨…

【成品论文30页】2024美赛C题完整1-4问完整解答+答疑服务+完整数据集代码

2024美赛C题 也包括心理和环境因素。理解这些因素对于运动员、教练和观众来说都至关重要,因为它们直接影响着比赛的结果和整体体验。 技术水平和体能因紊 网球比赛中得分的波动首先受到运动员的技术水平和体能因素的影响。技术水平高的运动员往往能够以更加精准和有…

UnityShader(十四)纹理

目录 前言: 单张纹理实现效果: 效果: 前言: 纹理最初的目的是用一张图片来控制模型的外观。使用纹理映射技术我们可以把一张图“贴”在模型表面,逐纹素(文素的名字是为了和像素进行区分)控制…

CentOS 7中搭建FTP文件共享服务器的完整步骤

CentOS 7中搭建FTP文件共享服务器的完整步骤 要求:设置不允许匿名用户登录,只允许本地用户登录,且将活动范围限制在其家目录。 系统环境: 服务器:172.20.26.167-CentOS7.6 客户端:172.20.26.24-CentOS7…

泰克示波器(TBS2000系列)触发功能使用讲解——边沿触发

# Trigger区域 触发区域用于对触发功能进行配置。示波器的触发功能用于采集(Acquire)那些在瞬间出现的信号,便于我们分析观察,此时可以当做逻辑分析仪使用。触发区域按钮包括:menu、Level\Force Trig三个。 目录 1.1 …

一篇文章了解系统眼中的键盘--以一个简单的系统分析从按键的输入到字符的显示

键盘输入 实现使用的设备 intel架构32位CPU, 思路为嵌入式系统工程师,使用的操作系统是《30天自制操作系统》里面的系统进行讲解 硬件实现 按键 使用单片机等的引脚可以获取电平状态从而获得按键的状态(单片机是一种集成到一块硅片上构成的一个小而完善的微型计算机系统, 用…