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

代码随想录二刷 | 链表 | 翻转链表

代码随想录二刷 | 链表 | 翻转链表

  • 题目描述
  • 解题思路 & 代码实现
    • 双指针法
    • 递归法

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 指针的指向,直接将链表翻转,而不用重新定义一个链表。
在这里插入图片描述
首先定义一个 cur 指针指向头节点,在定义一个 pre 指针初始化为 null

随后将cur->next节点用 tmp指针保存一下,随后将cur -> next指向 pre ,这样就完成了第一个节点的翻转。

接下来进入循环继续移动 pre 和 cur 指针,最后 cur指针指向 null ,循环结束,链表翻转完成,return pre指针, pre指针就指向了头节点。

class Solution {
public:ListNode* reverseList(ListNode* head) {ListNode* tmp;ListNode* cur = head;ListNode* pre = NULL;while (cur) {tmp = cur -> next;cur -> next = pre;pre = cur;cur = tmp;}return pre;}
};

时间复杂度:O(n)
空间复杂度:O(1)

递归法

class Solution {
public:ListNode* reverse(ListNode* pre, ListNode* cur) {if (cur == NULL) return pre;ListNode* tmp = cur -> next;cur -> next = pre;// 递归写法实际上也是做了这两步// pre = cur;// cur = tmp;return reverse(cur, tmp);}ListNode* reverseList(LKistNode* head) {return reverse(NULL, head);}
};

相关文章:

代码随想录二刷 | 链表 | 翻转链表

代码随想录二刷 &#xff5c; 链表 &#xff5c; 翻转链表 题目描述解题思路 & 代码实现双指针法递归法 206.翻转链表 题目描述 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4…...

每日一题(LeetCode)----链表--两两交换链表中的节点

每日一题(LeetCode)----链表–两两交换链表中的节点 1.题目&#xff08;[24. 两两交换链表中的节点](https://leetcode.cn/problems/spiral-matrix/)&#xff09; 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内…...

竞赛选题 身份证识别系统 - 图像识别 深度学习

文章目录 0 前言1 实现方法1.1 原理1.1.1 字符定位1.1.2 字符识别1.1.3 深度学习算法介绍1.1.4 模型选择 2 算法流程3 部分关键代码 4 效果展示5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 毕业设计 图像识别 深度学习 身份证识别…...

什么时候用@MapperScan 注解?

hello,我是小索奇&#xff0c;给大家讲解一下MapperScan注解的用法。 MapperScan 注解是 MyBatis 框架中的一个注解&#xff0c;它的主要作用是扫描指定包路径下的 Mapper 接口&#xff0c;将其注册为 Spring 的 Bean。这样&#xff0c;在使用 MyBatis 进行数据库操作时&#…...

MQTT.js

MQTT.js mqtt.js简介MQTT测试工具mqttboxMQTTX mqtt使用mqtt引入&#xff08;方式一&#xff09;mqtt引入&#xff08;方式二&#xff09;创建mqtt客户端连接到mqtt代理订阅topic处理接收到的消息重新连接取消订阅发布消息断开连接关闭客户端MQTT APIMQTT在VUE中使用MQTT在Reac…...

html滑动文章标题置顶

position: sticky; 基于用户的滚动位置来定位 首先封装一个组件 例如&#xff1a;AAA组件&#xff08;注意&#xff0c;只能有一层盒子&#xff0c;不能在外面继续包一层div&#xff09; <template><div class"box">{{title}}</div> </templa…...

Android11 桌面默认横屏导致任务键近期任务布局UI显示错误!

/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java 定义变量&#xff1a;private boolean stch false; keyCode KeyEvent.KEYCODE_APP_SWITCH 取消原来逻辑&#xff0c;采用广播打开近期任务后台 /*/ if (!keyguardOn…...

「Verilog学习笔记」根据状态转移图实现时序电路

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 这是一个典型的米利型状态机。三段式即可解决。 米利型状态机&#xff1a;即输出不仅和当前状态有关&#xff0c;也和输入有关。 其中ST0&#xff0c;ST1&#xff0c;ST3的…...

使用DHorse发布SpringBoot项目到K8S

前言 在介绍DHorse的操作之前&#xff0c;先来介绍一下使用k8s发布应用的步骤&#xff0c;以SpringBoot应用为例进行说明。 1.首先从代码仓库下载代码&#xff0c;比如GitLab&#xff1b; 2.接着进行构建&#xff0c;比如使用Maven&#xff1b; 3.如果要使用k8s作为编排&am…...

Java修仙记之记录一次与前端女修士论道的经历

文章开始之前&#xff0c;想跟我念一句&#xff1a;福生无量天尊&#xff0c;无量寿佛&#xff0c;阿弥陀佛 第一场论道&#xff1a;id更新之争 一个天气明朗的下午&#xff0c;前端的小美女长发姐告诉我&#xff1a;嘿&#xff0c;小后端&#xff0c;你的代码报错了 我答道&am…...

初识linux(1)

文章目录 什么是linux什么是操作系统&#xff1f;开源 怎么装linux的环境基础指令lspwdcdtouchmkdirrmdir与rmmancpmv 什么是linux linux是一款开源操作系统 什么是操作系统&#xff1f; 操作系统&#xff1a;一种对计算机所有计算机软硬件进行控制和管理的系统软件 开源 开源&…...

投资黄金:如何选择正确的黄金品种增加收益?

黄金一直以来都是备受投资者青睐的避险资产&#xff0c;然而&#xff0c;在庞大的黄金市场中&#xff0c;选择适合自己的黄金品种成为影响收益的关键因素。黄金投资并不只有一种方式&#xff0c;而是有很多种不同的黄金品种可以选择。每种黄金品种都有其独特的特点和风险&#…...

Rust错误处理机制:优雅地管理错误

大家好&#xff01;我是lincyang。 今天&#xff0c;我们要探讨的是Rust语言中的错误处理机制。 Rust作为一种系统编程语言&#xff0c;对错误处理的重视程度是非常高的。它提供了一套既安全又灵活的机制来处理可能出现的错误。 Rust错误处理的两大类别 在Rust中&#xff0…...

docker-compose安装harbor

docker-compose安装harbor 环境&#xff1a;centos7 1、安装docker 官方文档 https://docs.docker.com/engine/install/centos/ 1、卸载旧版本 $ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate …...

【python学习】基础篇-常用模块-shutil文件和目录操作

shutil模块是Python标准库中的一个模块&#xff0c;提供了对文件和目录进行高级操作的函数。 以下是shutil模块的一些常用函数&#xff1a; 1.复制文件&#xff1a; 将源文件src复制到目标文件dst。如果follow_symlinks为True,则会跟随符号链接。 shutil.copy(src, dst, *, f…...

鸿蒙系统调研适配

写在前面&#xff1a; 以下内容基于我个人翻阅的官方资料以及自己的理解写的&#xff0c;可能存在认知和理解上的偏差&#xff0c;有些地方并不一定是对的&#xff0c;请谨慎对待&#xff0c;注意甄别&#xff01; 一、鸿蒙OS是什么&#xff1f; 华为推出的多端统一平台&…...

SAP gui 登录条目不让修改

今天碰到用户安装的GUI 770 版本&#xff0c;不让修改&#xff0c;也不让添加 后面再选项里面找到了...

华为ac+fit无线2层漫游配置案例

ap的管理dhcp在ac上&#xff0c;业务dhcp在汇聚交换机上、并且带2层漫游 R1: interface GigabitEthernet0/0/0 ip address 11.1.1.1 255.255.255.0 ip route-static 12.2.2.0 255.255.255.0 11.1.1.2 ip route-static 192.168.0.0 255.255.0.0 11.1.1.2 lsw1: vlan batch 100…...

nginx的location中配置路径讲解

初次接触&#xff1a;可能会遇到404找不到页面的错误&#xff0c;主要原因是配置路径问题&#xff1b; 规则&#xff1a;ip port 等于 root&#xff0c;假设server的配置如下&#xff1a; server { listen 80; #端口号 location / { root /opt/sta…...

No appropriate protocol -- Mysql

DataGrip连接mysql报以下异常信息&#xff1a; javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate) The following required algorithms might be disabled: SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5wi…...

ARM汇编器FPU配置与性能优化指南

1. ARM汇编器与FPU架构深度解析在嵌入式系统开发领域&#xff0c;ARM汇编器&#xff08;armasm&#xff09;作为连接高级语言与底层硬件的桥梁&#xff0c;其命令行参数的精确配置直接影响最终生成的机器码质量和性能表现。其中&#xff0c;--fpu选项作为控制浮点运算单元&…...

IDE内嵌AI产品副驾驶:用对话式工作流实现文档即代码

1. 项目概述&#xff1a;在IDE里嵌入一个产品经理副驾驶如果你和我一样&#xff0c;既是开发者&#xff0c;又时不时要客串产品经理的角色&#xff0c;那你肯定对下面这个场景不陌生&#xff1a;脑子里蹦出一个绝妙的产品点子&#xff0c;兴奋地打开代码编辑器准备大干一场&…...

基于LLM智能体的多模态医疗AI系统:架构、实现与临床评估

1. 项目概述与核心思路在肿瘤诊疗的日常工作中&#xff0c;我们常常面临一个困境&#xff1a;信息是海量的&#xff0c;但时间是有限的。一位晚期结直肠癌患者&#xff0c;他的病历里可能包含长达数年的门诊记录、几次手术的病理报告、不同时期的CT/MRI影像、以及一份包含数百个…...

可视化后台轻松维护PC管理系统

一、概述总结蘑菇云响应式企业官网是基于微擎框架开发的 PC 端企业官网搭建系统&#xff0c;支持响应式布局、独立域名绑定、可视化内容管理&#xff0c;可快速搭建适配多终端的企业官方网站。系统具备官方正品保障、源码加密安全稳定&#xff0c;配备产品管理、新闻资讯、在线…...

如何查找SQL中最常见的元素_结合GROUP BY与COUNT

用 GROUP BY COUNT 找出现最多的值&#xff1a;先按目标字段分组&#xff0c;再统计每组行数并降序排列取首行&#xff0c;如 SELECT source, COUNT() FROM users GROUP BY source ORDER BY COUNT() DESC LIMIT 1。怎么用 GROUP BY COUNT 找出字段里出现最多的值直接对目标字…...

当STM32H7B0调试器连不上时:手把手教你用串口指令‘唤醒’它的Bootloader模式

STM32H7B0调试器连接失败&#xff1f;串口指令唤醒Bootloader全攻略 遇到STM32H7B0突然"罢工"&#xff0c;调试器死活连不上时&#xff0c;多数工程师的第一反应是反复插拔ST-Link或检查接线——但更聪明的做法是直接唤醒芯片内置的Bootloader。这个藏在芯片ROM中的救…...

Llama 3.2 90B-Vision实战:Groq云推理+Streamlit轻量部署图像描述生成器

1. 项目概述&#xff1a;这不是一个“调API”的玩具&#xff0c;而是一次对多模态工程边界的实测我用Llama 3.2 90B-Vision搭了一个图像描述生成器&#xff0c;上线三天&#xff0c;内部测试团队传了278张图进来——有手机随手拍的早餐煎蛋、模糊的旧照片扫描件、带水印的电商主…...

百度网盘提取码智能获取工具:3秒破解资源访问障碍的终极指南

百度网盘提取码智能获取工具&#xff1a;3秒破解资源访问障碍的终极指南 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾为百度网盘分享链接的提取码而反复搜索浪费时间&#xff1f;在信息爆炸的时代&#xff0c;高效…...

在CATLASS样例工程使用AscendC算子调测API

在CATLASS样例工程使用AscendC算子调测API 【免费下载链接】catlass 本项目是CANN的算子模板库&#xff0c;提供NPU上高性能矩阵乘及其相关融合类算子模板样例。 项目地址: https://gitcode.com/cann/catlass AscendC算子调测API是AscendC提供的调试能力&#xff0c;可进…...

XUnity.AutoTranslator终极指南:让所有游戏秒变中文版

XUnity.AutoTranslator终极指南&#xff1a;让所有游戏秒变中文版 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为看不懂的外文游戏发愁吗&#xff1f;XUnity.AutoTranslator是一款开源游戏翻译神器…...