面试题-链表(2)

1.合并两个有序链表:

21. 合并两个有序链表 - 力扣(LeetCode)

 

public ListNode mergeTwoLists(ListNode headA, ListNode headB){ListNode newhead=new ListNode(-1);ListNode cur=newhead;while(headA!=null&&headB!=null){if(headA.val<headB.val){cur.next=headA;headA=headA.next;cur=cur.next;}else{cur.next=headB;headB=headB.next;cur=cur.next;}}
if(headA==null){cur.next=headB;
}
if(headB==null){cur.next=headA;
}
return newhead.next;
}

 2.链表的分割:

链表分割_牛客题霸_牛客网 (nowcoder.com)

public ListNode partition(ListNode pHead, int x) {if(pHead==null){//如果链表为空,则提前返回return null;}ListNode bs=null;ListNode be=null;ListNode as=null;ListNode ae=null;ListNode cur=pHead;while(cur!=null){//开始遍历链表if(cur.val<x){//第一种情况if(bs==null){//第一次插入bs=be=cur;}else{be.next=cur;be=be.next;}}else{//第二种情况if(as==null){//第一次插入as=ae=cur;}else{ae.next=cur;ae=ae.next;}}cur=cur.next;}if(bs==null){//如果没有小于x的节点,直接返回大于等于x的节点return as;}if(as!=null){//如果大于x的节点不为空ae.next=null;}be.next=as;//绑定两段链表return bs;}

 3.链表的回文结构:

链表的回文结构_牛客题霸_牛客网 (nowcoder.com)

public boolean chkPalindrome(ListNode A) {ListNode slow=A;ListNode fast=A;while(fast!=null&&fast.next!=null){//开始找中间节点slow=slow.next;fast=fast.next.next;}ListNode cur=slow.next;while(cur!=null){//开始反转slow后面的链表ListNode curN=cur.next;cur.next=slow;slow=cur;cur=curN;}while(A!=slow){//一个从头开始走,一个从尾开始走if(A.val!=slow.val){//一旦两值不相同,返回falsereturn false;}if(A.next==slow){//前提在值相同的情况下,偶个节点的情况return true ;       }A=A.next;slow=slow.next;}return true ;//能走到这一步,返回真}

 4.相交链表:

160. 相交链表 - 力扣(LeetCode)

 public ListNode getIntersectionNode(ListNode headA, ListNode headB) {if(headA==null||headB==null){//两个链表有一个为空,就返回nullreturn null;}ListNode pl=headA;ListNode ps=headB;int a=0,b=0;while(pl!=null){//分别求各链表的长度pl=pl.next;a++;}while(ps!=null){ps=ps.next;b++;}pl=headA;//重新指向头结点ps=headB;if(a<b){//使pl一直指向长的链表,ps指向短的链表pl=headB;ps=headA;}int len=a>b?(a-b):(b-a);while(len!=0){//移动长链表到合适的位置pl=pl.next;len--;}while(pl!=null&&ps!=null){//同时遍历两个链表if(ps==pl){//相遇提前返回return ps;}ps=ps.next;pl=pl.next;}return null;}

 5.环形链表:

141. 环形链表 - 力扣(LeetCode)

public boolean hasCycle(ListNode head) {ListNode slow=head;ListNode fast=head;while(fast!=null&&fast.next!=null){//开始遍历链表fast=fast.next.next;//快指针走两步slow=slow.next;//慢指针走一步if(slow==fast){//如果相遇return true;}}return false;//不相遇}

6.环形链表2:

142. 环形链表 II - 力扣(LeetCode)

 public ListNode detectCycle(ListNode head) {if(head==null){//如果链表为空return null;}ListNode slow=head;ListNode fast=head;while(fast!=null&&fast.next!=null){//开始找相遇节点fast=fast.next.next;//快指针走两步slow=slow.next;//慢指针走一步if(slow==fast){//如果相遇break;}}if(fast==null||fast.next==null){//判断链表是否成环return null;}slow=head;//重置slow节点,此时fast节点指向相遇点while(slow!=fast){slow=slow.next;fast=fast.next;}return slow;}

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

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

相关文章

微软Entra新安全功能引发大规模账户锁定事件

误报触发大规模锁定 多家机构的Windows管理员报告称&#xff0c;微软Entra ID新推出的"MACE"&#xff08;泄露凭证检测应用&#xff09;功能在部署过程中产生大量误报&#xff0c;导致用户账户被大规模锁定。这些警报和锁定始于昨夜&#xff0c;部分管理员认为属于误…

【MATLAB第117期】#源码分享 | 基于MATLAB的SSM状态空间模型多元时间序列预测方法(多输入单输出)

【MATLAB第117期】#源码分享 | 基于MATLAB的SSM状态空间模型多元时间序列预测方法&#xff08;多输入单输出&#xff09; 引言 本文使用状态空间模型实现失业率递归预测&#xff0c;状态空间模型&#xff08;State Space Model, SSM&#xff09;是一种用于描述动态系统行为的…

谷歌浏览器搜索后的页面总是覆盖当前页面

最近将搜索引擎换为谷歌后&#xff0c;发现&#xff0c;每次搜索完的结果页面总是覆盖当前页面&#xff0c;非常不方便&#xff0c;在浏览器设置中又找不到类似设置的选项&#xff0c;然后终于在一个博主“如何设置使谷歌浏览器打开链接自动跳转到新标签页而不是覆盖当前页面?…

记录学习的第三十天

今天终于又开始写博客了。 还是滑动窗口问题&#xff0c;这段时间不出意外都是这了 上面的思路是我自己做的&#xff0c;但是不知道为什么不行&#xff0c;有没有大佬能指点一下我。 接下来这道题是进阶的。不过我之前的基础都做的很艰难&#xff0c;道阻且长啊。

QTextDocument 入门

一、QTextDocument QTextDocument 是 Qt 中用于处理富文本文档的核心类&#xff0c;支持文本格式、图片、表格等复杂内容。 1. QTextDocument 入门 1.1 基本概念 QTextDocument 是 Qt 中用于处理富文本内容的核心类&#xff0c;它提供了&#xff1a; 结构化文本存储&#x…

WebRTC服务器Coturn服务器相关测试工具

1、概述 在安装开源的webrtc服务器coturn服务器后&#xff0c;会附带安装coturn的相关工具&#xff0c;主要有以下几种工具 2、turnadmin工具 说明&#xff1a;服务器命令行工具&#xff0c;提供添加用户、添加管理员、生成TURN密钥等功能&#xff0c;turnadmin -h查看详细用…

如何创建Vue3工程

1.首先下载环境 &#xff08;默认下好了VS code&#xff09; Node.js: Node.js 中文网 — 下载 Node.js 选择要下载的版本 检查环境&#xff1a; 在命令行中输入 node ,检查版本号 2.创建工程 1.找到自己要创建工程的文件目录&#xff0c;右键打开打开终端 在终端输入创…

基于大模型的肛裂手术全流程预测与治疗方案研究报告

目录 一、引言 1.1 研究背景与意义 1.2 研究目标与创新点 1.3 研究方法与技术路线 二、肛裂概述与大模型技术原理 2.1 肛裂的医学定义与分类 2.2 肛裂的发病机制与临床症状 2.3 大模型技术简介 三、大模型在肛裂术前预测的应用 3.1 术前风险因素分析与数据收集 3.2 …

【趣味小游戏】--扫雷游戏

目录 一.test.c部分 二.game.h部分 三.game.c部分 前言:前面学习了数组和函数等c语言相关知识&#xff0c;这篇文章我们将通过这些知识分为三个文件来完成扫雷游戏&#xff1b; 1.test.c //文件中写游戏的测试逻辑 2.game.c //文件中写游戏中函数的实现等 3.game.h. //文件中写…

【微服务】SpringBoot制作Docker镜像接入SkyWalking详解

目录 一、前言 二、SkyWalking介绍 2.1 SkyWalking是什么 2.2 SkyWalking核心功能 2.3 SkyWalking整体架构 2.4 SkyWalking主要工作流程 三、前置准备 3.1 搭建SkyWalking服务 3.1.1 下载安装包 3.1.2 上传服务器目录 2.1.3 数据库持久化配置说明 3.1.4 启动skywalk…

从零开始构建微博爬虫与数据分析系统

从零开始构建微博爬虫与数据分析系统 引言 社交媒体平台蕴含着海量的信息和数据&#xff0c;通过对这些数据的收集和分析&#xff0c;我们可以挖掘出有价值的见解。本文将详细介绍如何构建一个完整的微博爬虫和数据分析系统&#xff0c;从数据爬取、清洗、到多维度分析与可视…

深入探索RAG:用LlamaIndex为大语言模型扩展知识,实现智能检索增强生成

大型语言模型&#xff08;LLM&#xff09;&#xff0c;如ChatGPT和Llama&#xff0c;在回答问题方面表现出色&#xff0c;但它们的知识仅限于训练时所获取的信息。它们无法访问私有数据&#xff0c;也无法在训练截止日期之后学习新知识。那么&#xff0c;核心问题就是……我们如…

【延迟双删】简单解析

使用场景&#xff1a;【高并发】情况下的做【更新操作】 什么是延迟双删 首次删除&#xff1a;当需要更新某个数据项时&#xff0c;首先删除缓存中的该项。 更新数据库&#xff1a;接着&#xff0c;更新数据库中的该项。 短暂延迟&#xff1a;然后等待一段很短的时间&#xff…

解决Windows安全中心显示空白页面

1、电脑重装系统后&#xff0c;发现原本一些软件打不开了&#xff0c;电脑莫名认为有病毒&#xff0c;自动删除插件。附图。 2、第一反应是电脑防火墙的原因&#xff0c;默认威胁防护识别到了病毒软件&#xff0c;自动删除。在开始屏幕搜Windows安全中心&#xff0c;打开之后发…

【回眸】error: failed to compile `xxxxxx`重装rust环境

在ubuntu上安装软件报错 error: failed to compile cxx2flow v0.6.2 Caused by: package cargo-platform v0.1.9 cannot be built because it requires rustc 1.78 or newer, while the currently active rustc version is 1.75.0 Try re-running cargo install with --lo…

算法—冒泡排序—js(教学示例、小数据)

冒泡排序原理 冒泡排序是一种简单的排序算法&#xff0c;通过重复遍历数组&#xff0c;比较相邻元素并交换位置&#xff0c;使较大的元素逐渐“浮”到数组末尾。 特点 时间复杂度&#xff1a;平均 O(n)&#xff0c;最优&#xff08;已有序时&#xff09;O(n) 空间复杂度&#…

linux sysfs的使用

在Linux内核驱动开发中&#xff0c;device_create_file 和 device_remove_file 用于动态创建/删除设备的 sysfs 属性文件&#xff0c;常用于暴露设备信息或控制参数。以下是完整示例及详细说明&#xff1a; 1. 头文件引入 #include <linux/module.h> #include <linux/…

利用 Deepseek 和 Mermaid 画流程图

提示词 你是一个产品经理&#xff0c;请绘制一个报名比赛的流程图&#xff0c;要求生成符合Mermaid语法的代码&#xff0c;具体要求如下&#xff1a; 1.注册账号 2.填写报名信息 3.参加比赛 4.查看比赛结果 生成的结果 flowchart TDA([开始]) --> B[注册账号]B --> C{账…

【图像标注技巧】目标检测图像标注技巧

介绍一些图像标注技巧。之前引用过别人的文章 yolo目标检测 技巧 trick 提升模型性能&#xff0c;deep research检测调研报告也可以进行参考。 拉框类的标注&#xff0c;如果你不确定哪种方法好&#xff0c;你可以把所标注区域的都剪切出来&#xff0c;然后站在屏幕一米之外眯…

数字信号处理技术架构与功能演进

数字信号处理&#xff08;DSP&#xff09;是通过数字运算实现信号分析、变换、滤波及调制解调的技术领域&#xff0c;其发展过程与技术应用如下&#xff1a; 一、定义与核心功能 技术定义&#xff1a;通过算法将模拟信号转换为数字形式进行处理&#xff0c;具有高精度、可编程…