反转链表(Leetcode)

news/2024/11/8 7:07:41/

反转链表

Leetcode题目链接

题意:翻转一个单链表

🌰:

输入: 1->2->3->4->5->NULL

输出: 5->4->3->2->1->NULL

链表本身进行反转即可,不用重新定义链表,这同时浪费时间和空间。

需要采用哑节点吗?
不需要的,如果使用了哑节点还会造成报错。
如果给原链表添加哑节点:
dummy ->1->2->3->4->5->NULL
那么我们反转后就变成了:
5->4->3->2->1->dummy
这是不合理的,所以不使用哑节点。
还有一个问题,循环判断的条件是什么?
在该问题中,当链表被遍历到末尾后,程序便结束。
所以需要一个条件来确定链表是否已经被遍历到末尾。
代码如下:

class Solution{public ListNode reverseList(ListNode head){ListNode pre = null;ListNode cur = head;ListNode next = null;while(cur != null){next = cur.next;cur.next = pre;pre = cur;cur = next;}//注意,反转链表后,原来的末尾成为现在的头return pre; }
}

递归方法:

// 递归 
// 递归的核心思路和双指针是一样的。
class Solution {public ListNode reverseList(ListNode head) {return reverse(null, head);}private ListNode reverse(ListNode prev, ListNode cur) {// 注意递归出来的条件,当前节点为null,表明已经遍历完成if (cur == null) {return prev;}ListNode temp = null;temp = cur.next;// 先保存下一个节点cur.next = prev;// 反转// 更新prev、cur位置// prev = cur;// cur = temp;return reverse(cur, temp);}
}

http://www.ppmy.cn/news/1545286.html

相关文章

第二章 虚拟仪器及其构成原理

目录 第二章 虚拟仪器及其构成原理 第七章 基于VXI总线的虚拟仪器 7.2 VXI总线系统的体系结构 7.3.1 系统和硬件 7.5 PXI总线与PCI性能比较 第二章 虚拟仪器及其构成原理 2.4 虚拟仪器及其系统集成 2.4.1 虚拟仪器硬件组成 接口硬件:根据不同的标…

Echats柱状图的横坐标用图片显示

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>图片作为横坐标示例 - ECharts</title><!-…

AutoOps 使每个 Elasticsearch 部署都更易于管理

作者&#xff1a;来自 Elastic Ziv Segal&#xff0c;Ori Shafir AutoOps for Elasticsearch 通过性能建议、资源利用率和成本洞察、实时问题检测和解决路径显著简化了集群管理。 虽然 Elasticsearch 是一款功能强大且可扩展的搜索引擎&#xff0c;可提供多种功能&#xff0c;但…

虚实地址转换

虚实地址转换的过程涉及多个关键组件和步骤。以下是虚实地址转换过程的主要涉及点&#xff1a; 一、基本概念 虚地址&#xff08;逻辑地址&#xff09;&#xff1a;由程序提供的地址&#xff0c;是程序在逻辑上所使用的地址。实地址&#xff08;物理地址&#xff09;&#xf…

如何使用 Python 控制 Android 设备的蓝牙和 WiFi

在本文中&#xff0c;我们将探讨如何利用 Python 脚本通过 ADB&#xff08;Android Debug Bridge&#xff09;来控制 Android 设备的蓝牙和 WiFi 状态。我们将提供一个通用的方法&#xff0c;使得切换服务的过程更加简洁和高效。 1. 环境准备 首先&#xff0c;确保你的计算机…

交换区(Swap Area或Swap Partition)

在操作系统中&#xff0c;交换区&#xff08;Swap Area或Swap Partition&#xff09;扮演着至关重要的角色&#xff0c;主要用于在物理内存&#xff08;RAM&#xff09;不足时提供额外的虚拟内存空间。以下是交换区的主要功能和作用&#xff1a; 一、内存扩展 当系统的物理内…

Java项目实战II基于Spring Boot的智能家居系统(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 随着物联网技术的快速发展和普及&#…

编程语言之战:AI 之后的 Kotlin 与 Java

随着人工智能不断重塑科技格局&#xff0c;开发人员越来越面临选择哪些编程语言在 AI 开发方面最有利和有效的任务。 考虑到 AI 和机器学习的快速发展&#xff0c;一种编程语言是否更适合满足这一不断发展的领域的需求&#xff1f; 自 1995 年问世以来&#xff0c;Java 一直是编…