链表OJ—相交链表

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

前言

1、相交链表的题目:

方法讲解:

图文解析:

代码实现:

总结


前言

世上有两种耀眼的光芒,一种是正在升起的太阳,一种是正在努力学习编程的你!一个爱学编程的人。各位看官,我衷心的希望这篇博客能对你们有所帮助,同时也希望各位看官能对我的文章给与点评,希望我们能够携手共同促进进步,在编程的道路上越走越远!


提示:以下是本篇文章正文内容,下面案例可供参考

1、相交链表的题目:

方法讲解:

图文解析:

解题思路:

分别找到A、B两个链表的尾节点,尾节点地址相同,就说明两个链表相交;若尾节点地址不同,就说明两个链表不相交。分别求出A、B两个链表的长度,长的先走差距步,然后再同时走,当节点的地址相同时,就说明这个节点就是相交的起始节点。

代码实现:

 typedef struct ListNode ListNode;
struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {struct ListNode*cur1 = headA;struct ListNode*cur2 = headB;int len1 = 1;int len2 = 1;//求链表A、B的长度//链表A、B的最后一个节点的不满足循环条件,就没进去while(cur1->next){len1++;cur1 = cur1->next;}while(cur2->next){len2++;cur2 = cur2->next;}//判断链表A、B是否相交if(cur1 != cur2){return NULL;}//求链表A、B长度差的绝对值int n = abs(len1 - len2);//假设链表A比链表B的长度长struct ListNode*longList = headA;struct ListNode*shortList = headB;if(len2>len1){longList = headB;shortList = headA;}//长的先走差距步while(n--){longList = longList->next;}//同时走while(longList != shortList){longList = longList->next;shortList = shortList->next;}return longList;
}


总结

好了,本篇博客到这里就结束了,如果有更好的观点,请及时留言,我会认真观看并学习。
不积硅步,无以至千里;不积小流,无以成江海。

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

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

相关文章

15.Java程序设计-基于SSM框架的微信小程序校园求职系统的设计与实现

摘要: 本研究旨在设计并实现一款基于SSM框架的微信小程序校园求职系统,以提升校园求职流程的效率和便捷性。通过整合微信小程序平台和SSM框架的优势,本系统涵盖了用户管理、职位发布与搜索、简历管理、消息通知等多个功能模块,为…

爱智EdgerOS之深入解析AI图像引擎如何实现AI视觉开发

一、前言 AI 视觉是为了让计算机利用摄像机来替代人眼对目标进行识别,跟踪并进一步完成一些更加复杂的图像处理。这一领域的学术研究已经存在了很长时间,但直到 20 世纪 70 年代后期,当计算机的性能提高到足以处理图片这样大规模的数据时&am…

ArkUI组件

目录 一、概述 声明式UI 应用模型 二、常用组件 1、Image:图片展示组件 示例 配置控制授权申请 2、Text:文本显示组件 示例 3、TextInput:文本输入组件 示例 4、Button:按钮组件 5、Slider:滑动条组件 …

Swagger PHP Thinkphp 接口文档

安装 1. 安装依赖 composer require zircote/swagger-php 2. 下载Swagger UI git clone https://github.com/swagger-api/swagger-ui.git 3. 复制下载好的Swagger UI 中的dist目录到public目录中,修改目录名称 cp -rf swagger-ui/dist /home/htdocs/public/ m…

vue中设置滚动条的样式

在vue项目中,想要设置如下图中所示滚动条的样式,可以采用如下方式: ​// 直接写在vue.app文件中 ::-webkit-scrollbar {width: 3px;height: 3px; } ::-webkit-scrollbar-thumb { //滑块部分// border-radius: 5px;background-color: #1890ff;…

【智能家居】智能家居项目

智能家居项目目录 项目目录结构 完整而典型的项目目录结构 CMake模板 CMake编译运行 README.md 项目说明文档 智能家居项目目录 【智能家居】面向对象编程OOP和设计模式(工厂模式) 【智能家居】一、工厂模式实现继电器灯控制 【智能家居】二、添加火灾检测模块(…

4-Docker命令之docker ps

1.docker ps介绍 docker ps命令是用来列出容器的相关信息 2.docker ps用法 docker ps [参数] [rootcentos79 ~]# docker ps --helpUsage: docker ps [OPTIONS]List containersAliases:docker container ls, docker container list, docker container ps, docker psOptions…

【重点】【二叉树】199.二叉树的右视图

题目 法1:层次遍历 最佳方法&#xff0c;牢记&#xff01;&#xff01;&#xff01; class Solution {public List<Integer> rightSideView(TreeNode root) {List<Integer> res new ArrayList<>();if (root null) {return res;}Queue<TreeNode> q…

Java 克隆:复制构造函数与克隆

为了实现克隆&#xff0c;我们需要配置我们的类并遵循以下步骤&#xff1a; 在我们的类或其超类或接口中实现 Cloneable 接口。 定义一个应处理 CloneNotSupportedException&#xff08;抛出或记录&#xff09;的 clone() 方法。 并且&#xff0c;在大多数情况下&#xff0c;我…

Ubuntu上svn基本使用(gitee提交下载)

目录 环境准备 1. 获取代码到本地 直接获取 获取代码时加入用户名密码 指定版本更新 2. 提交代码 3. 展示代码列表 4. 添加代码文件(目录) 5. 删除gitee仓库中的文件 参考文档链接 环境准备 当前操作系统为Ubuntu22.04LTS gitee 创建仓库时 需要打开svn的支持 sudo…

GoLong的学习之路,进阶,微服务之使用,RPC包(包括源码分析)

今天这篇是接上上篇RPC原理之后这篇是讲如何使用go本身自带的标准库RPC。这篇篇幅会比较短。重点在于上一章对的补充。 文章目录 RPC包的概念使用RPC包服务器代码分析如何实现的&#xff1f;总结Server还提供了两个注册服务的方法 客户端代码分析如何实现的&#xff1f;如何异步…

nginx配置正向代理支持https

操作系统版本&#xff1a; Alibaba Cloud Linux 3.2104 LTS 64位 nginx版本&#xff1a; nginx-1.25.3 1. 下载软件 切换目录 cd /server wget http://nginx.org/download/nginx-1.25.3.tar.gz 1.1解压 tar -zxvf nginx-1.25.3.tar.gz 1.2切换到源码所在目录…

【探索Linux】—— 强大的命令行工具 P.21(多线程 | 线程同步 | 条件变量 | 线程安全)

阅读导航 引言一、线程同步1. 竞态条件的概念2. 线程同步的概念 二、条件变量1. 条件变量函数⭕使用前提&#xff08;1&#xff09;初始化条件变量&#xff08;2&#xff09;等待条件满足&#xff08;3&#xff09;唤醒等待pthread_cond_broadcast()pthread_cond_signal() &…

JavaGUI详解

GUI Java GUI**1、Java GUI 概述****2、容器****2、1 窗口****2、2 弹窗和对话框****对话框****自定义弹窗** **2、3 面板****普通面板****滚动面板****分隔面板****选项卡面板** **3、布局****3.1、流式布局****3.2、网格布局****3.3、边框布局****4、组件****4.1、基本组件**…

Steampipe的安装部署及简单使用(附带AWS CLI的安装与使用)

介绍 Steampipe 将 API 和服务公开为高性能关系数据库&#xff0c;使您能够编写基于 SQL 的查询来探索动态数据。Mods 通过使用简单 HCL 构建的仪表板、报告和控件扩展了 Steampipe 的功能。 官网&#xff1a;https://steampipe.io/ steampipe的安装 下载脚本并执行 sudo /…

Unity优化——批处理的优势

大家好&#xff0c;这里是七七&#xff0c;前段时间在忙一些事情&#xff0c;最近终于有空来更新优化篇了。本文本打算分为上下两篇&#xff0c;但为了看更方便&#xff0c;就多花了几天写成一文发布&#xff0c;具体是介绍了图形优化中批处理的具体效果&#xff0c;虽然本文篇…

【Linux】cat 命令使用

cat 命令 cat&#xff08;英文全拼&#xff1a;concatenate&#xff09;命令用于连接文件并打印到标准输出设备上。 可以使用cat连接多个文件、创建新文件、将内容附加到现有文件、查看文件内容以及重定向终端或文件中的输出。 cat可用于在不同选项的帮助下格式化文件的输出…

LV.13 D1 嵌入式系统移植导学 学习笔记

一、嵌入式系统分层 操作系统&#xff1a;向下管理硬件、向上提供接口 操作系统为我们提供了&#xff1a; 1.进程管理 2.内存管理 3.网络接口 4.文件系统 5.设备管理 那系统移植是干什么呢&#xff1f; 就是将Linux操作系统移植到基于ARM处理器的开发板中。 那为什么要移植系…

【calcitonin ; 降钙素 ;降钙素原】

Parathyroid_Hormone -甲状旁腺激素 PTH &#xff1b; 特立帕肽&#xff1b;

『OPEN3D』1.8.2 全局ICP配准

前文提到的多种icp方式均需要初始的变换函数作为配准过程的初始值,并在该初始值上进行迭代优化得到结果;那么global icp为前面这些精配准的icp提供了初始变换函数。因此global ICP配准后可视化的点云结果可能没有完全配准,需要再进行一次精配准操作。 global icp需要对点云提…