leetcode递归(LCR 024. 反转链表)

news2024/9/23 19:26:46

前言

经过前期的基础训练以及部分实战练习,粗略掌握了各种题型的解题思路。现阶段开始专项练习。

描述

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

进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?

实现原理与步骤

  • 递归函数确认:

        ListNode reverseList(ListNode head)

        函数功能,反转链表。

        函数参数:   ListNode head为当前节点。

        函数返回值: 返回链表末尾节点。

  • 递归结束标志:

        head.next==null,返回末尾节点

        head==null,空节点直接返回。

  • 单层递归逻辑:

        

        head.next.next=head;
        head.next=null;

        当前节点的next节点的next指向自己。

        当前节点的next节点清空。

        

 实现代码

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode reverseList(ListNode head) {
        if(head==null||head.next==null){
            return head;
        }
        ListNode node=reverseList(head.next);
        head.next.next=head;
        head.next=null;
        return node;
    }
}

1.QA:

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

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

相关文章

2024年6月scratch图形化编程等级考试四级真题

202406 青少年软件编程等级考试Scratch四级真题 试卷总分数&#xff1a;100分 考试时长&#xff1a;60 分钟 第 1 题 运行下列程序&#xff0c;输入单词“PLAY”&#xff0c;最后角色说&#xff1f;&#xff08; &#xff09; A&#xff1a;LY4AP B&#xff1a;AP4LY C&am…

【Linux】【git】创建使用+分支管理+场景模拟

文章目录 引子1. 创建 提交 删除init - - 创建一个初始化的本地仓库config - - 对本地仓库的配置add - - 新增commit - - 提交rm - - 删除 2. 状态查看 和 版本回退log - - 日志status - - 查看diff - - 比较reset - - 版本回退场景模拟1_1 reflog - - 参考日志场景模拟1_2 3. …

K短路(A*算法)

K短路&#xff1a; 在图论中&#xff0c;K短路问题是指在一个图中找到从起点s到终点t的第K短的路径。其中&#xff0c;第1短路径即为最短路径。K短路算法在实际应用中有着广泛的用途&#xff0c;如在通信网络中找到替代的最短路径等。 基本概念 K短路&#xff1a;从起点s到终…

美国服务器稳定么?影响服务器稳定性的6个因素

美国服务器稳定么&#xff1f;美国服务器的稳定性是相当不错的&#xff0c;这主要得益于其先进的技术、成熟的基础设施以及严格的管理措施。美国拥有众多知名的服务器提供商&#xff0c;这些提供商通常会采用顶级的硬件设施&#xff0c;如英特尔、AMD等知名品牌的处理器&#x…

Chromium编译指南2024 - Android篇:前置要求(一)

1.引言 欢迎阅读《Chromium编译指南2024 - Android篇》。本指南旨在帮助开发者理解和掌握在Android平台上编译Chromium的全过程。Chromium是一个开源的浏览器项目&#xff0c;由Google主导开发&#xff0c;并为多个现代浏览器提供基础代码。Android作为全球使用最广泛的移动操…

DirectX_web_setup.exe

F:\Downloads\录屏软件\OBS DirectX_web_setup.exe

IP实现https访问的简易方式

很多项目怕麻烦不愿意申请域名&#xff0c;也不想备案&#xff0c;所以直接用服务器IP地址做WEB项目更快一些&#xff0c;但又想给IP地址申请SSL证书&#xff0c;这种情况下需要用到IP类型的专用SSL证书。 IP SSL证书是支持IP地址实现HTTPS加密的SSL证书&#xff0c;为不能提供…

Linux服务管理(五)Apache服务优化

CustomLog "|/bin/rotatelogs -l /wwwlogs/access_%Y%m%d.log 86400" combined日志旋转可参考这篇文章&#xff1a; https://blog.csdn.net/weixin_43576565/article/details/139989701 要优化首先你得有Apache yum -y install httpd启动 service httpd start写入…

[Qt][按钮类控件]详细讲解

目录 0.按钮状态说明1.Push Button2.Radio Button3.Check Box4.Tool Button 0.按钮状态说明 clicked&#xff1a;⼀次 ⿏标按下⿏标释放 触发pressed&#xff1a;鼠标按下时触发released&#xff1a;鼠标释放时触发toggled&#xff1a;checked属性改变时触发 1.Push Button QP…

seaborn与pandas绘图入门

导入环境 import numpy as np import pandas as pd from numpy.random import randn import matplotlib.pyplot as plt 若是在jupyter notebook编译&#xff0c;需要额外执行下列语句 %matplotlib notebook 该语句在Jupyter Notebook或JupyterLab中使用的IPython魔法命令&…

最新版的AutoGPT,我搭建好了

最近AutoGPT不是更新了嘛 安装 我按照官方的教程 在本地搭建好了 改动 可见的改动&#xff0c;主要是把原来的纯命令行改成前后端的形式 看下前端界面 界面比较简单&#xff0c;主要分3个大块 监控 第一个是监控 主要是看你在 build 里构建的Agents的运行情况 build 第一个是Ag…

C++笔试练习笔记【7】:力扣 91. 解码方法 动态规划练习

文章目录 题目题目分析思路解法正常解法优化解法 题目 题目链接&#xff1a;力扣 91. 解码方法 备用链接&#xff1a;https://leetcode.cn/problems/decode-ways/description/ 题目分析 1.首先我们知道题目给定A~Z编码为1 ~26 &#xff0c;而数字十一字符串的形式给出所以…

js构造函数的prototype赋值总结

我们知道通过构造函数的prototype,可以生成让所有实例对象访问的通用属性和方法,下面通过代码来解释这个过程 function Person(name){this.name name; }Person.prototype.sex man我们定义了一个构造函数Person,然后给它的prototype添加了一个sex的属性,下面我们来看看Person…

MySQL:复杂查询 (一)——聚合函数分组查询联合查询

目录 1、聚合查询 1.1 聚合函数 1.1.1 COUNT() 1.1.2 SUM() 1.1.3 AVG() 1.1.4 MAX()&#xff0c;MIN() 1.2 分组查询 1.2.1 GROUP BY子句 1.2.1.1 round() 1.2.2 HAVING 1.2.3 示例 2、联合查询 2.1 ①取相关表笛卡尔积 2.2 ②过滤无效数据 2.3 ③精简查询结果…

【数据结构】队列,你必须知道的内部原理!!!

&#x1f31e;&#x1f31e;&#x1f31e;生活本就沉闷&#xff0c;但跑起来就会有风 ~~~ 前言&#xff1a; &#x1f31f;&#x1f31f;Hello家人们&#xff0c;这期讲解数据结构队列的基础知识&#xff0c;希望你能帮到屏幕前的你。 &#x1f4da;️上期博客在这里&#xff1…

书生基础岛1-开发全链路

涌现能力&#xff1a;知识到运用的能力。 开源工具箱&#xff1a; 预训练&#xff1a; 微调&#xff1a; 部署&#xff1a; 智能体&#xff1a; 智能体&#xff1a; 知识库构建&#xff1a; RAG&#xff1a;

初识C++ · C++11(1)

目录 前言&#xff1a; 1 统一列表初始化 2 声明 2.1 auto 2.2 decltype 2.3 nullptr 2.4 stl的部分变化 3 右值引用和移动语义 前言&#xff1a; 在C11之前&#xff0c;C98的出现使得C看起来更像是一门独立的语言&#xff0c;C委员会成立后&#xff0c;对外宣称的是5…

神鸟云PCDN业务招募

短Z业务--支持nat0~nat4 省内调度&#xff0c;晚高峰 跑量9成 配置要求: 线路&#xff1a;单条上行30M 硬件&#xff1a;32线程 64内存条 240G系统盘 1G:2T固态盘单价&#xff1a;移动1900 电联2500 镜像下载&#xff1a;http://oss.download.birdicloud.com/box/Cent…

三层架构:IOCDI

三层架构 我们先看一下三层架构是什么 我们想要实现这三层架构的分离&#xff0c;实现一个类实现一个功能。 我们先建立一个包&#xff0c;然后在包下创建接口&#xff0c;然后再实现接口。从而实现三层架构分离。 IOC 为了实现这三层架构的分离&#xff0c;我们把创建类的…

协同过滤之矩阵分解算法问题详解

1、矩阵分解出现的原因 传统的协同过滤依赖用户的历史行为来推测用户对未评分商品的评分&#xff08;潜在兴趣&#xff09;&#xff0c;不需要了解物品的具体属性&#xff0c;也不需要知道用户的具体偏好&#xff0c;只需要历史评分数据就可以进行推荐&#xff0c;存在以下问题…