大厂常见算法50题-反转链表

请添加图片描述

专栏持续更新50道算法题,都是大厂高频算法题,建议关注。

文章目录

  • 解法参考链接
  • 题目
  • 解法一 双指针
  • 解法二 递归
  • 解法三 妖魔化的双指针
  • 总结

解法参考链接

题目

image.png

解法一 双指针

  • 定义两个指针: pre 和 cur。pre 在前 cur 在后。
  • 每次让 pre的 next 指向 cur,实现一次局部反转
  • 局部反转完成之后, pre 和 cur 同时往前移动一个位置
  • 循环上述过程,直至 pre 到达链表尾部
class Solution {public ListNode reverseList(ListNode head) {// 如果初始化用这个,输出就是543210,多了一个0// ListNode pre = new ListNode();ListNode pre = null;ListNode cur = head;while (cur != null) {ListNode temp = cur.next;cur.next = pre;pre = cur;cur = temp;}return pre;}
}

解法二 递归

class Solution {public ListNode reverseList(ListNode head) {if (head == null || head.next == null) {return head;}ListNode ret = reverseList(head.next);// 两次next需要理解一下:head.next实际代表的就是最后一个节点,看方法的入参head.next.next = head;head.next = null;return ret;}
}

解法三 妖魔化的双指针

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

总结

反转链表在面试时非常高频,解法主要掌握解法一即可,要会写还要会说,面试官有时会问思路的。对于没刷过算法的建议看下文章开头的视频题解。作者K神,视频题解逐帧观看,看完自己一帧一帧画下来,可以不看视频自己画出来说明真正理解了。

请添加图片描述

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

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

相关文章

Day4 商品管理

Day4 商品管理 这里会总结构建项目过程中遇到的问题,以及一些个人思考!! 学习方法: 1 github源码 文档 官网 2 内容复现 ,实际操作 项目源码同步更新到github 欢迎大家star~ 后期会更新并上传前端项目 编写品牌服务 …

在线预约订房酒店小程序源码系统 带完整的安装代码包以及=安装部署教程

传统的酒店预订方式往往依赖于电话、邮件或者到店咨询,这种方式不仅效率低下,而且容易造成信息不准确、沟通不畅等问题。随着智能手机的普及和移动互联网的发展,用户对于随时随地、方便快捷地进行酒店预订的需求日益增强。小编给大家分享一款…

[MySQL]运算符

1. 算术运算符 (1). 算术运算符 : , -, *, / 或 DIV, % 或MOD. (2). 例 : (3). 注 : DUAL是伪表.可以看到4/2结果为小数,并不会截断小数部分.(可能与其他语言不同,比如java中,两个操作数如果是整数,则计算得到的也是整数&…

羊大师:夏季羊奶的好处有哪些?

夏季羊奶的好处主要包括以下几点 1.增强免疫力:羊奶中的钙元素丰富,能有效为身体补充营养物质,增强自身的免疫能力。羊奶还富含上皮细胞生长因子(EGF),对人体鼻腔、咽喉、血管、肠胃等黏膜有良好的修复作用…

Qt 跨平台开发的一丢丢总结

Qt 跨平台开发 文章目录 Qt 跨平台开发摘要第一 \ & /第二 神奇{不能换行显示第三 预处理宏 关键字: Qt、 win、 linux、 lib、 MSVC 摘要 最近一直在琢磨Qt跨平台开发的问题,缘由有以下几个, 首先第一个,我们目前开发…

几种比Serv-u更好满足企业的替代工具方案

很多目前企业面临的挑战是如何在保障数据安全的同时,提高文件传输的效率。传统的FTP服务器,如Serv-U,虽然长期服务于文件共享与传输,但在新兴需求面前显得力不从心。 于是企业开始寻求更先进的解决方案以应对跨地域、大容量的文件…

Vue 3中的ref和toRefs:响应式状态管理利器

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

【图说】VMware Ubuntu22.04 详细安装教程

前言 无论是从事 Linux 开发工作,还是希望电脑运行双系统,VMware 虚拟机都是我们日常工作不可或缺的工具。本章将会重点介绍 VMware 安装流程,以及在 VMware 上如何运行、使用 Ubuntu22.04 系统。 一、VMware 下载安装 1.1 VMware 官网下载…

【Hello算法】 > 第 3 关 >栈与队列

数据结构 之 数组与链表 1 栈 / 栈的常见操作、实现、应用2 队列 /队列的常见操作、实现、应用3 双向队列4 Tips ———————————————————————————————————————————————————————————- ————————————————…

鼠标坐标传感器FCT3065

参考链接 如何优雅的DIY鼠标? | 技术文章 | 汇顶科技开发者社区 (goodix.com)https://developers.goodix.com/zh/bbs/blog_detail/bebdd04ccdfc4f7682ab27a8e77a14ad GitHub - VineetSukhthanker/FCT3065-XY_MouseSensor: Interface FCT3065-XY optical mouse sen…

面试算法准备:动态规划

这里写自定义目录标题 1 理论2 例题2.1 斐波那契数列(什么是重叠子问题)2.1.1 带备忘录的递归解法 2.2 零钱兑换(讲解最优子结构)2.3 最长递增子序列(讲解如何求解状态转移方程)2.4 俄罗斯套娃信封问题&…

Vue3、 Vue2 Diff算法比较

Vue2 Diff算法 源码位置:src/core/vdom/patch.ts 源码所在函数:updateChildren() 源码讲解: 有新旧两个节点数组:oldCh和newCh; 有下面几个变量: oldStartIdx 初始值=0 oldStartVnode 初始值=oldCh[0] oldEndIdx 初始值=oldCh.length - 1 oldEndVnode 初始值=oldCh[ol…

鸿蒙 harmonyos 线程 并发 总结 async promise Taskpool woker(三)多线程并发 Worker

Worker Worker是与主线程并行的独立线程。创建Worker的线程称之为宿主线程,Worker自身的线程称之为Worker线程。创建Worker传入的url文件在Worker线程中执行,可以处理耗时操作但不可以直接操作UI。 Worker主要作用是为应用程序提供一个多线程的运行环境…

CTFshow-PWN-栈溢出(pwn36)

存在后门函数,如何利用? 好好好,终于到了这种有后门函数的了 checksec 检查一下: 32 位程序,RELRO 保护部分开启 RWX: Has RWX segments 存在可读可写可执行的段 使用 ida32 看 main 函数 跟进 ctfshow 函数…

Scala 04 —— Scala Puzzle 拓展

Scala 04 —— Scala Puzzle 拓展 文章目录 Scala 04 —— Scala Puzzle 拓展一、占位符二、模式匹配的变量和常量模式三、继承 成员声明的位置结果初始化顺序分析BMember 类BConstructor 类 四、缺省初始值与重载五、Scala的集合操作和集合类型保持一致性第一部分代码解释第二…

L3-1 夺宝大赛-2024天梯赛(内存超限解决方法)

题目 夺宝大赛的地图是一个由 nm 个方格子组成的长方形,主办方在地图上标明了所有障碍、以及大本营宝藏的位置。参赛的队伍一开始被随机投放在地图的各个方格里,同时开始向大本营进发。所有参赛队从一个方格移动到另一个无障碍的相邻方格(“…

聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用

前言 Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类…

Redis入门到通关之Redis实现Session共享

文章目录 ☃️前期概要☃️基于Session实现登录方案☃️现有方案存在的问题☃️Redis代替Session的业务流程❄️❄️设计key的结构❄️❄️设计key的具体细节❄️❄️整体访问流程 欢迎来到 请回答1024 的博客 🍓🍓🍓欢迎来到 请回答1024的博…

redis原理篇(黑马程序员虎哥 )回忆笔记

原理,老师讲的真好。相见恨晚。 以下内容是按视频课程的章节安排,在我自己听完课之后,凭借记忆总结的。(可能存在疏漏不足,后期补全和修正,同时也在这个过程巩固我自己的对于这个组件相关原理的学习&#x…

中国DIVI版,wordpress DIVI网站主题在国内的替代方案。

最受欢迎的WordPress主题之一是Divi。我们创建了这个全面的Divi主题评论,以帮助您更好地了解其优点和潜在缺点。 Divi主题是什么? Divi是一个流行的WordPress主题,提供了一个网站建设平台。它有一个可视化编辑器选项,为新手和专业…