反转链表的三种写法

题目链接:https://leetcode.cn/problems/reverse-linked-list/

在这里插入图片描述

方法一:循环,维护好两个节点一个前一个后

class Solution {public ListNode reverseList(ListNode head) {ListNode pre = null;ListNode local = head;while(local != null){ListNode temp = local.next;local.next = pre;pre = local;local = temp;}return pre;}
}

方法二:递归

比较难想,首先我们直接递归找到最后的头节点,这个头结点不能再动了,直接有一个.next.next就是找下一个节点,把下一个节点的下一个指向当前节点,然后当前节点下一个指空,这样子回到上一个递归的时候就可以保持头节点不变,只变化了中间的节点关系,就算head指向了空也没事,递归回去栈中还保存着head的信息不会丢失。

class Solution {public ListNode reverseList(ListNode head) {if(head == null||head.next ==null)return head;ListNode newHead = reverseList(head.next);head.next.next = head;head.next = null;return newHead; }
}

方法三:头插法(最好想的一种办法,推荐)

循序很重要,头插法首先先记录下来头节点下一个的点存起来,然后头节点指向当前节点,然后头结点的下一个下一个指向存起来的点,head继续指向下一个,head的next不能动。这里我们需要知道一个点:p.next = head,head = head.next , p.next 不会指向head.next就像变量赋值一样的道理。

class Solution {public ListNode reverseList(ListNode head) {ListNode p = new ListNode(0);while(head!=null){ListNode temp = p.next;p.next = head;head = head.next;p.next.next = temp;}return p.next;}
}

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

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

相关文章

七、Lua字符串

文章目录 一、字符串(一)单引号间的一串字符(二)local str "Hello, "(三)[[ 与 ]] 间的一串字符(四)例子 二、字符串长度计算(一)string.len&…

信奥编程 1168:大整数加法

解析:在c中需要考虑这么几个问题,第一个是大数据的输入,第二个是大数据的存储,第三是大数据的计算方式,最后是输出。 针对上述几个问题,第一个问题,采用字符串的方式或者数组加循环的方式接收输…

PlantUML语法(全)及使用教程-时序图

目录 1. 参与者1.1、参与者说明1.2、背景色1.3、参与者顺序 2. 消息和箭头2.1、 文本对其方式2.2、响应信息显示在箭头下面2.3、箭头设置2.4、修改箭头颜色2.5、对消息排序 3. 页面标题、眉角、页脚4. 分割页面5. 生命线6. 填充区设置7. 注释8. 移除脚注9. 组合信息9.1、alt/el…

Python pyinstaller打包exe最完整教程

目录 1 简介 2 安装 3 原理和打包效果 3.1 原理概述 3.2 搜索模块 3.3 打包效果概述 3.4 打包成单个文件夹 优点 缺点 3.5 打包成单个exe 优点 缺点 4 打包 4.1 基本语法 4.2 参数总览 位置参数 可选参数 4.3 隐藏控制台窗口 4.4 资源嵌入exe 4.5 更改图标…

nginx配置相关应用服务

1、无ssl证书的conf文件 server {listen 80;server_name test.domain.com;root html;index index.html index.htm;location / {proxy_http_version 1.1;proxy_set_header Connection "";proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_…

CCC联盟数字钥匙(一)——UWB MAC概述

本文在前面已经介绍了相关UWB的PHY之后,重点介绍数字钥匙(Digital Key)中关于MAC层的相关实现规范。由于MAC层相应涉及内容比较多,本文首先从介绍UWB MAC的整体框架,后续陆续介绍相关的网络、协议等内容。 1、UWB MAC架…

pip安装PIL模块失败 No matching distribution found for PIL

言简意赅,我在安装PIL模块的时候报错信息如下: pip install PIL Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple ERROR: Could not find a version that satisfies the requirement PIL (from versions: none) ERROR: No matching distr…

CH58x-BLE 程序阅读笔记

CH58x-BLE 程序阅读笔记 1. 广播1.1 广播类型设置1.2 广播数据长度 1. 广播 1.1 广播类型设置 1.2 广播数据长度 1) GAP-广播数据(最大大小31字节,但最好保持较短以节省广告时的电量) 31个字节包含了 length data type&a…

SpringBoot自动配置注入Bean工具autoconfigure

依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-autoconfigure</artifactId></dependency> yml配置 student:red: com.ma.config.MinIOConfigProperties spring.factories org.springframework.…

MySQL用得好好的,为何要转ES?

MySQL是一种关系型数据库&#xff0c;它可以高效地存储和查询结构化的数据。 ES是一种分布式搜索引擎&#xff0c;它可以快速地对海量的非结构化或半结构化的数据进行全文检索和分析。 MySQL 和 ES 的数据存储方式也不同。MySQL 中的数据通常是以关系型表的形式存储在磁盘上&…

四招心理博弈术,让别人不敢欺负你,敬你三分

教你四招心理博弈术&#xff0c;让别人不敢欺负你&#xff0c;无论在职场中还是跟朋友交往中&#xff0c;为什么总是有人敢欺负你呢&#xff0c;是因为你不懂得人性博弈。其本质原因&#xff0c;是你做人没有边界感&#xff0c;或者没有原则&#xff0c;即便你有原则&#xff0…

ecology主表checkBox按钮给明细表浏览按钮赋值

需求&#xff1a; 通过上面图片红框中的单选按钮&#xff0c;将对应的负责人赋值到明细表的负责人位置。 核心代码&#xff1a; <script> jQuery(document).ready(function(){WfForm.bindFieldChangeEvent("field17616", function(obj,id,value){ SelectVa…