反转链表,剑指offer,力扣

目录

解题方法:

难度分析:

解题思路(迭代):

代码实现:

代码(递归):


题目地址:

206. 反转链表 - 力扣(LeetCode)

难度:简单

今天刷反转链表,大家有兴趣可以点上看看题目要求,试着做一下

我们直接看题解吧:

解题方法:

方法1、迭代(时间复杂度(1))

方法2、递归(时间复杂度(n))

难度分析:

这道题是不难,应该算是基础的题目了,递归方法比较难理解一点

解题思路(迭代):

假设链表为1->2->3->null,我们需要把它改成null->1->2->3

在遍历链表时,将当前节点的next 指针改为指向前一个节点,由于节点没有设引用前一个节点,因此必须事先存储其前一个节点,在更改的引用之前,由于节点没有设引用前一个节点,最后返回新的头引用。

代码实现:

class Solution {public ListNode reverseList(ListNode head) {ListNode cur = head, pre = null;//头节点while(cur != null) {ListNode tmp = cur.next; // 暂存后继节点 cur.nextcur.next = pre;          // 修改 next 引用指向pre = cur;               // pre 暂存 curcur = tmp;               // cur 访问下一节点}return pre;}
}

代码(递归):

class Solution {public ListNode reverseList(ListNode head) {return recur(head, null);    // 调用递归并返回}private ListNode recur(ListNode cur, ListNode pre) {if (cur == null) return pre; // 终止条件ListNode res = recur(cur.next, cur);  // 递归后继节点cur.next = pre;              // 修改节点引用指向return res;                  // 返回反转链表的头节点}
}

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

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

相关文章

2019ICPC南京站

A A Hard Problem 题意&#xff1a;给定一个正整数 n &#xff0c;你需要找出最小整数 k&#xff0c;满足&#xff1a;从{1,2,⋯,n}中任意选择长度为k的子集&#xff0c;存在两个不同的整数 u,v∈T, 且 u 是 v 的因数。 思路&#xff1a;打表找规律 #include <bits/std…

vue3使用tsx自定义弹窗组件

1.在ts代码中使用css 我这里使用了styils/vue&#xff0c;npm install styils/vue --save-dev&#xff0c;在tsx文件中引入即可&#xff1a;import { styled } from "styils/vue"; 2.在tsx中初始化组件&#xff0c;创建在src的utils目录中创建messagebox.tsx impo…

代码随想录-刷题第三天

203. 移除链表元素 题目链接&#xff1a;203. 移除链表元素 思路&#xff1a;创建一个虚拟头结点&#xff0c;用来保证删除第一个元素和删除其他元素的操作相同。 时间复杂度&#xff1a;O(n) /*** Definition for singly-linked list.* public class ListNode {* int …

go语言学习-结构体

1、简介 Go语言中的结构体是一种自定义数据类型,可以将不同类型的数据字符组合在一起形成一个单独的实体。结构体可以用于存储和操作复杂的数据结构,以及创建自定义数据类型。通过自定义结构体创建的变量,可以存储不同类型的数据字段。在实际开发中,结构体的用途非常广泛,…

JSP:Tag文件的使用

需求&#xff1a;多个JSP页面可能需要使用一些相同的信息 例如:导航栏、标题等。 目标&#xff1a;提高这些相同信息的代码的复用性。 方法&#xff1a;将这些相同的元素形成一种特殊的文件&#xff0c;以便所有页面都可以使用&#xff0c;即&#xff1a;Tag文件 1、Tag对…

MySQL数据库入门到大牛_基础_10_创建和管理表(创建和管理数据库;创建表;修改表;重命名表;删除表;清空表,内容扩展)

前面我们完成了查询结构的介绍&#xff0c;本章介绍DDL和DCL中的COMMIT和ROLL BACK。 文章目录 1. 基础知识1.1 一条数据存储的过程1.2 标识符命名规则1.3 MySQL中的数据类型 2. 创建和管理数据库2.1 创建数据库2.2 使用数据库2.3 修改数据库2.4 删除数据库 3. 创建表3.1 创建…

猫罐头哪个牌子好吃?精选5款好评率高的猫罐头推荐!

很多新手养猫的姐妹们都会为选罐头感到焦虑&#xff01;因为每种猫罐头都有优缺点&#xff0c;每只猫咪的胃口也都不同&#xff0c;所以只有综合考虑选择适合自家猫咪的猫罐头的才是最好的。所以姐妹们在选罐头之前可以先做好功课&#xff0c;了解一下怎么选好的猫罐头。 作为开…

Jmeter监听器

Jmeter监听器 一、监听器介绍二、监听器的类型三、监听器详解3.1 察看结果树3.2 Summary Report3.3 聚合报告3.4 后端监听器3.5 Aggregate Graph3.6 Comparison Assertion Visualizer&#xff08;比较断言可视化器&#xff09;3.7 JSR223 Listener3.8 Response Time Graph3.9 S…

欧科云链研究院:从香港SFC最新文件看链上交易合规必备之选

出品&#xff5c;欧科云链研究院 作者&#xff5c;Hedy Bi 近日&#xff0c;香港证监会在其官网发布“致持牌法团、获证监会发牌的虚拟资产服务提供者及有联系实体的通函 - 打击洗钱&#xff0f;恐怖分子资金筹集经更新的《打击洗钱&#xff0f;恐怖分子资金筹集的自我评估查…

java switch case 多条件 正确案例错误案例

正确案例&#xff1a; 1.多条件下可以通过case 7: case 3: 执行条件或|&#xff0c;简而言之就是 if (type 7 || type 3){ … } case 0:final String v1 row.get(field).toString();row.put(field, v1);break;case 1:final Float v2 Float.parseFloat(row.get(field).toStri…

CICD 持续集成与持续交付(2)

目录 gitlab 部署 jenkins 部署 配置 实时触发 自动化构建docker镜像 通过ssh插件交付任务 添加jenkins节点 RBAC pipeline jenkins结合ansible参数化构建 安装ansible 新建gitlab项目 jenkins新建项目playbook gitlab 部署 虚拟机最小需求&#xff1a;4G内存 4核cpu 下载&…

shell: 遍历目录下的文件并查看

CRTDIR$(pwd) S"/" ls .| grep ifc | while read file doif test -f $filethenecho "#cat "$CRTDIR$S$filecat $CRTDIR$S$filefi done

【智能优化算法】从蚁群到动物园

目录 引言蚁群优化算法&#xff08;ACO&#xff09;ACO 机理ACO 模型描述ACO 移动策略 粒子群优化算法&#xff08;PSO&#xff09;PSO 机理PSO 模型描述 萤火虫群优化算法&#xff08;GSO&#xff09;GSO 机理GSO 模型描述 群智能优化算法 引言 21世纪&#xff0c;人类社会已经…

ElementUI用el-table实现表格内嵌套表格

文章目录 一、效果图二、使用场景三、所用组件元素&#xff08;Elementui&#xff09;四、代码部分 一、效果图 二、使用场景 &#x1f6c0;el-form 表单内嵌套el-table表格 &#x1f6c0;el-table 表格内又嵌套el-table表格 三、所用组件元素&#xff08;Elementui&#xff…

Kubeadm部署Kubernetes Containerd集群

文章目录 概述一、硬件系统二、基础配置设置主机名配置主机名与IP地址解析关闭防火墙与selinux时间同步(ntp)升级系统内核配置内核转发及网桥过滤*安装ipset及ipvsadm关闭SWAP分区 三、Containerd准备Containerd获取下载解压Containerd配置文件生成并修改Containerd启动及开机自…

5年经验之谈 —— 性能测试如何定位分析性能瓶颈?

你好&#xff0c;我是小牛&#xff0c;目前在一家准一线互联网大厂做测试开发工程师。 对于一般公司普通测试工程师来说&#xff0c;可能性能测试做的并不是很复杂&#xff0c;可能只是编写下脚本&#xff0c;做个压测&#xff0c;然后输出报告结果&#xff0c;瓶颈分析和调优…

【Hello Go】Go语言复合类型

复合类型 分类指针基本操作new函数指针作为函数的参数 数组概述操作数据数组初始化数组比较在函数之间传递数组 slice概述切片的创建和初始化切片操作切片和底层数组关系内建函数appendcopy 切片作为函数传参 map概述创建和初始化常用操作赋值遍历 删除map作函数参数 结构体结构…

近期问题笔记20231116

DMA的洛伦兹约束的来源 多拉格朗日乘子的拉格朗日对偶问题的次梯度搜索 鲁棒优化&#xff0c;only statistical CSI of the users-to-RIS channels H 2 , k \mathbf{H}_{2,k} H2,k​ is available 期望符号的去除&#xff0c; 阅读这篇论文 C.-K. Wen, S. Jin, and K.-K. …

导数...

导数定义: f ′ ( x 0 ) lim ⁡ x → x 0 f ( x ) − f ( x 0 ) x − x 0 f(x_0)\lim\limits_{x\rightarrow{x_0}}\frac{f(x)-f(x_0)}{x-x_0} f′(x0​)x→x0​lim​x−x0​f(x)−f(x0​)​ 罗尔定理:如果函数在[a,b]可导,并且f(a)f(b),那么[a,b]区间内一定有个导数是0 中值…

Python (十三) 输出

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一波电子书籍资料&#xff0c;包含《Effective Java中文版 第2版》《深入JAVA虚拟机》&#xff0c;《重构改善既有代码设计》&#xff0c;《MySQL高性能-第3版》&…