夜月一帘幽梦,春风十里“三指针法“ (链表面试题篇2)

本篇会加入个人的所谓鱼式疯言

❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言
而是理解过并总结出来通俗易懂的大白话,
小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的.
🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人能接受我们这个概念 !!!

请添加图片描述

前言

在上一篇文章中

我们讲解了

  1. 寻找链表的 中间结点 : 用 快慢指针 的速度差解决 中点问题 的理解
  1. 判断链表是否带环: 因为 ,快慢直接总会一点一点相遇的 快慢指针 的熟悉
  1. 返回链表倒数第 k 个节点: 更扩展了,快慢指针 也不一定先一起走,也有可能 快指针 先走,慢指针 再跟着的思想

而今天我们主要讲解 “三指针” 在链表面试题中运用

下面让小编结合具体的题目,给小伙伴细细道来吧 💖 💖 💖 💖

目录

  1. 反转链表
  2. 链表的回文结构

一. 反转链表

反转链表题目链接

1. 题目描述

在这里插入图片描述

2. 解题思路

  1. 首先我们声明 三个引用类型 cur head curN ,先让 cur 置为 null head为头节点, curN 为头结点的下一个节点

请添加图片描述

  1. 先讲 head 连接 cur 接着我们让 cur 走到 head ,head 走到 curN curN 走到下一个节点 ,循环往复,直到 curNnull

3. 题解代码(Java)


/*** 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) {return head;} ListNode cur=head.next;head.next=null;while(cur != null) {ListNode curN=cur.next;cur.next=head;head=cur;cur=curN;}return head;}
}

在这里插入图片描述

鱼式疯言

简单来说

三指针法 也叫 头插法

一个指针 curN 带头 ,后面 两个指针头变成尾 ,这便是 三指针 头插 法 的含义

二. 链表的回文结构

1. 题目描述

在这里插入图片描述

链表的回文结构题目链接

2. 解题思路

  1. 首先 结合我们学过的 快慢指针法 找到 中间 位置

什么 💥💥💥 有小伙伴不知道 快慢指针法 别急别急,不懂的小伙伴查看下面链接哦

快慢指针法

  1. 然后在中间位置进行 三指针法 进行 头插 操作
  1. 然后首尾 相反 方向一起走,开始判断 首尾 是否 相同 ,直到相遇

<1>. 节点数为 偶数 时

请添加图片描述

<2>. 节点数为 奇数 时

请添加图片描述

3. 题解代码(Java)

import java.util.*;/*
public class ListNode {int val;ListNode next = null;ListNode(int val) {this.val = val;}
}*/
public class PalindromeList {public boolean chkPalindrome(ListNode A) {if(A==null) {return false;}ListNode dev=A;ListNode fast =A,slow=A;while(fast != null && fast.next != null) {slow=slow.next;fast=fast.next.next;}ListNode cur=slow.next;while(cur != null) {ListNode Ncur=cur.next;cur.next=slow;slow=cur;cur=Ncur;}while(A != slow) {if(A.val != slow.val){return false;}if(A.next==slow) {return true;}        A=A.next;slow=slow.next;}return true;
}
}

在这里插入图片描述

鱼式疯言

要点:

在本题我们利用了 快慢指针的头插三指针 的方法

注意:

当节点数为 偶数

就需要 判断 A.next==slow 是否成立 ,这点一定要主要,否则就很有可能进入 无限循环

总结

  • 反转链表 : 体会到三指针在反转链表的实用性

  • 链表的回文结构:利用了快慢指针的头插 ,三指针 的方法 的结合从中解决了本题

如果觉得小编写的还不错的咱可支持 三连 下 (定有回访哦) , 不妥当的咱请评论区 指正

希望我的文章能给各位宝子们带来哪怕一点点的收获就是 小编创作 的最大 动力 💖 💖 💖

在这里插入图片描述

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

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

相关文章

第 6 章 URDF、Gazebo与Rviz综合应用(自学二刷笔记)

重要参考&#xff1a; 课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ 讲义链接:Introduction Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 6.7 URDF、Gazebo与Rviz综合应用 关于URDF(Xacro)、Rviz 和 Gazebo 三者的关系&#xff0c;前面已有阐述&…

虚拟内存映像

最下面是固定的内容&#xff0c; bss放未初始化的变量、data是初始化的、text是代码内容&#xff0c; stack放寄存器放不下的局部变量&#xff0c; heap就是用户控制的地方&#xff0c;栈由编译器控制。 为什么寄存器也不能很多&#xff1f; 因为寄存器寻址也要编码&#…

ATFX港股:长周期看,恒生指数报价已经回到2008年以来的底部区域

消息面&#xff1a; 1、 4月12日&#xff0c;官方发布《推动资本市场高质量发展的若干意见》文件&#xff0c;其中提到九条意见&#xff0c;被称为“国九条”&#xff0c;重要内容有&#xff1a;将上市前突击“清仓式”分红等情形纳入发行上市负面清单&#xff1b;推动一年多次…

less+rem+媒体查询布局(主流)

rem适配布局 一.rem基础二.媒体查询1.概念2.语法&#xff08;1&#xff09;.mediatype查询类型&#xff08;2&#xff09;.关键字&#xff08;3&#xff09;.媒体特性&#xff08;4&#xff09;.应用 3.媒体查询rem实现元素动态大小变化4.引入资源&#xff08;针对不同媒体查询…

完全免费、私有且本地运行的搜索聚合器FreeAskInternet原理解读

我们在百度搜索,会出现如下回答方式,如何实现的呢?让我们看看一个完全免费、私有且本地运行的搜索聚合器FreeAskInternet的实现原理吧。 一.功能介绍 FreeAskInternet 是一个完全免费、私有且本地运行的搜索聚合器,并使用 LLM 生成答案,无需 GPU。用户可以提出问题,系统…

自动化测试selenium(2)

目录 WebDriver介绍 WebDriver使用 使用WebDriver驱动操作浏览器(打开一个百度) WebDriver 相关API 定位元素 操作元素 上一篇主要介绍了自动化测试的概念以及selenium的基本原理, 这里我们来讲一下如何利用selenium来写测试用的脚本. WebDriver介绍 Selenium是一个用于…

JMM(Java Memory Model java内存模型

目标&#xff1a; 搞清楚高并发场景下&#xff0c;java内存模型是怎么支持的&#xff0c;对象在内存中是怎么布局的&#xff1f; 目录 目标&#xff1a; 搞清楚高并发场景下&#xff0c;java内存模型是怎么支持的&#xff0c;对象在内存中是怎么布局的&#xff1f; 1.硬件层…

若依 ruoyi-vue el-select 多选框 全选 反选 全不选 查询功能

参考文章vueel-select下拉实现&#xff1a;全选、反选、清空功能 如图&#xff0c;优化代码&#xff0c;支持若依字典 import multipleSelect from /components/MultipleSelect/index.vuecomponents: { multipleSelect },<el-row><el-form-item label"分管领域…

ERA5再分析资料下载和处理成红黑图教程

ERA5再分析资料下载和处理教程 1.下载官网&#xff1a; https://cds.climate.copernicus.eu/cdsapp#!/dataset/reanalysis-era5-pressure-levels?tabform 下载之前需要注册网站的账号认证 选择需要的要素时间气压等要素&#xff0c;注意最后下载的数据格式是grib还是nc格式 …

Unity之PUN实现多人联机射击游戏的优化(Section 3)

目录 &#x1f4a3;一、准备工作 &#x1f4a3;二、生成弹头脚本的编写 &#x1f4a3;三、实现发射和伤害同步 手雷都加了在给狗剩加个火箭筒不过分吧。效果看GIF动图&#xff0c;分别是单机和联机的效果。 添加火箭筒依旧是在原有的基础上更改&#xff0c;我查看火箭筒模型…

8.基础乐理-纯八度

一个音听上去是高还是低&#xff0c;是由音的振动频率决定的&#xff0c;也就是每一秒多少 Hz 所决定的&#xff0c;Hz数越小音听上去就越低&#xff0c;Hz数越大音听上去就越大&#xff0c;钢琴从左到右&#xff0c;Hz数 在逐渐增大&#xff0c;当两个音的振动频率数越接近简单…

ARM汇编指令、指令中s后缀的作用、N、Z、C、V位有什么作用、ARM汇编启动代码

ARM汇编指令 学习arm汇编的主要目的是为了编写arm启动代码,启动代码启动以后,引导程序到c语言环境下允许。换句话说启动代码的目的是为了在处理器复位以后搭建c语言最基本的需求。因此启动代码的主要任务有: 初始化异常向量表; 初始化各工作模式的栈指针寄存器; 开启arm…

【深入解析spring cloud gateway】13 Reactive Feign的使用

问题引入 在gateway中如果使用feignClient的话&#xff0c;会报如下错误 java.lang.IllegalStateException: block()/blockFirst()/blockLast() are blocking, which is not supported in thread reactor-http-nio-3at reactor.core.publisher.BlockingSingleSubscriber.bloc…

密码知识汇总

文章目录 密码学知识&#xff23;&#xff29;&#xff21;三要素机密性&#xff08;Confidentiality&#xff09;完整性&#xff08;Integrity&#xff09;可用性&#xff08;Availability&#xff09; 非安全信道的风险以及应对措施风险应对措施使用加密技术&#xff08;防窃…

在uni-app使用iconfont中的图标

uni-app 如何使用iconfont中的图标 在uni-app中使用Iconfont图标通常涉及以下几个步骤&#xff1a; 步骤一&#xff1a;获取Iconfont资源 访问 iconfont-阿里巴巴矢量图标库&#xff0c;注册并登录账号。 浏览或搜索所需的图标&#xff0c;将它们添加至购物车或直接创建项目进…

Ubuntu 23.10.1 nginx源码安装

注&#xff1a;以下所有命令均在root管理员模式下&#xff0c;若不是&#xff0c;请在所有命令前加sudo 1、安装依赖库 1.1、安装gcc g的依赖库 apt-get install build-essential apt-get install libtool1.2、安装pcre依赖库 apt-get update apt-get install libpcre3 lib…

【opencv】示例-ffilldemo 使用floodFill()函数进行区域泛洪填充

image mask mask #include "opencv2/imgproc.hpp" // 包含OpenCV图像处理头文件 #include "opencv2/imgcodecs.hpp" // 包含OpenCV图像编码头文件 #include "opencv2/videoio.hpp" // 包含OpenCV视频IO头文件 #include "opencv2/highgui.hp…

【分享】3种方法取消Word文档的“打开密码”

我们知道&#xff0c;Word文档可以设置“打开密码”&#xff0c;防止文档被随意打开&#xff0c;那后续不需要密码保护了&#xff0c;要怎么取消呢&#xff1f;不小心把密码忘记了还可以取消吗&#xff1f;不清楚的小伙伴一起来看看吧&#xff01; 如果是Word文档不再需要密码…

Open3D(C++) 0~1归一化到0~255

目录 一、算法原理二、代码实现三、结果展示四、参考链接本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 0-1归一化到0~255的计算原理如下: g ′ = 255 ∗

冯喜运:4.15汇市观潮:现货黄金美原油技术分析

【 黄金消息面分析】&#xff1a;周一(4月15日)亚市盘初&#xff0c;金价开盘跳涨13美元&#xff0c;报2357.71美元/盎司&#xff0c;随后延续涨势&#xff0c;最高触及2372.45美元/盎司&#xff0c;目前金价回落至2354.19美元/盎司&#xff0c;如果中东局势未进一步恶化&#…