Leetcode160 两个链表是否相交

   leetcode 160题,判断两个链表是否相交

此题可以说是算法界第一深情,如果我走过你走过的路,那么我们就可能会相遇。

具体解决思路如下

两个链表是否相交有两种可能,一种不相交,一种相交,首先来看下相交的情况,那么它们会有公共部分,假设公共部分长度为c,然后链表一中不想交部分为a, 链表二中不想交部分为b,那么链表一的长度可以表示为a + c, 链表2的长度为b + c, 想在弄两个指针,一个指针A指向链表一的头部,另一个指针B指向链表b的头部,两个指针向后遍历,如果到达了尾部,那么就从另一个链表的头部开始遍历,直到两个节点相同,即找到了交叉节点,那么指针A就走过了a+c +b的长度,指针B走过了b+c +a的长度,可以看到它们是一样大的,所以可以找到相同的节点,同理,如果两个链表不想交,那么都走完两个链表后,节点都为null,代表没有交点。

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) {*         val = x;*         next = null;*     }* }*/
public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode headB) {ListNode tempA = headA;ListNode tempB = headB;while(tempA != tempB){tempA = tempA == null ? headB : tempA.next;tempB = tempB == null ? headA : tempB.next;}return tempA;}
}

具体代码如下

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

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

相关文章

golang学习-指针

1、定义 指针也是一个变量,但它是一个特殊的变量,它存储的是另一个变量的内存地址。是引用数据类型。 取一个变量的地址:&a 定义: var p *int &a 可以理解为 指针变量p中存储的是a的内存地址,但是变量p也…

element-plus 、element-ui —— Cascader 勾选内容后自动关闭内容选择面板

最近工作需求是 el-Cascader 级联多选框 任意选择一项,自动关闭面板? 来总结记录下。 element-ui的关闭面板方式👇 this.$refs.CascaderRef.dropDownVisible false element-plus的关闭面板方式👇 vue3.0写法 CascaderRef.val…

leaflet学习笔记-贝塞尔曲线绘制(八)

前言 两点之间的连线是很常见的,但是都是直直的一条线段,为了使连线更加平滑,我们可以使用曲线进行连线,本功能考虑使用贝塞尔曲线进行连线绘制,最后将线段的两端节点连接,返回一个polygon。 贝塞尔简介 …

大模型学习之书生·浦语大模型4——基于Xtuner大模型微调实战

基于Xtuner大模型微调实战 Fintune简介 海量数据训练的base model指令微调Instructed LLM 增量预训练微调 增量数据不需要问题,只需要答案,只需要陈述类的数据 指令跟随微调 指定角色指定问题给对应的user指定答案给assistant LIaMa2InternLM 不同的模…

金三银四-JVM核心知识高频面试题

又要快到一年一度的金三银四,开始复习啦~! 每天一点点。。 目录 一、JVM中的垃圾收集器有哪些,它们的工作原理是什么? 二、JVM中的类加载器有哪些,它们各自的作用是什么? 三、JVM中垃圾回收的…

Linux第24步_安装windows下的VisualStudioCode软件

Windows下的VSCode安装后,还需要安装gcc编译器和g编译器。 gcc:编译C语言程序的编译器; g:编译C代码的编译器; 1、在Windows下安装VSCode; 双击“VSCodeUserSetup-x64-1.50.1.exe”,直到安装完成。 2、…

c++学习笔记-STL案例-演讲比赛管理系统1

目录 1演讲比赛需求 1.1 比赛规则 1.2 程序功能 2.项目创建 2.1 创建新项目 2.2 添加文件 3.3 文件添加成功 3.创建管理类 3.1 功能描述 3.2 创建文件 4 菜单功能 4.1 功能描述 4.2 添加成员函数 4.3 菜单功能实现 4.4 main()函数中调用 4.5 实现结果 5 退出系…

C++力扣题目104--二叉树的最大深度

给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 返回它的最大深度 3 。 思路 看完本篇可以一起做了如下…

【C++11/C++17】左值与右值

左值和右值是C中的两个重要概念,它们涉及到变量的存储位置和生命周期。 左值(Lvalue) 左值表示一块具有确定地址的内存单元。它表示一个具体的、明确存在的存储单元。可以被取地址运算符(&)获取其地址。变量、数…

pytorch详细探索各种cnn卷积神经网络

目录 torch.nn.functional子模块详解 conv1d 用法和用途 使用技巧 适用领域 参数 注意事项 示例代码 conv2d 用法和用途 使用技巧 适用领域 参数 注意事项 示例代码 conv3d 用法和用途 使用技巧 适用领域 参数 注意事项 示例代码 conv_transpose1d 用法…

electron+vue编辑Office Word?

Electron 桌面应用是基于 Chromium 内核的,而谷歌Chrome取消了对PPAPI插件支持后,在线Office方案纷纷失效,只能更换国产浏览器在低版本浏览器苟延残喘,不能用于electronvue项目。 经过小编不断的寻找,终于找到一款至今…

redis主从复制、哨兵与集群

目录 一、概述 二、redis主从复制 1、概念 2、主从复制的作用 3、主从复制流程 4、搭建Redis 主从复制实验 ①在三台服务器上安装redis (1)关闭防火墙和安全机制 (2)修改内核参数 (3)安装redis …

自旋框的使用

1. 自旋框 实例化 //实例化单精度自旋框QSpinBox* spinBox new QSpinBox(this);//实例化双精度自旋框QDoubleSpinBox* doubleSpinBox new QDoubleSpinBox(this);1.1 单精度自旋框 QSpinBox 1.1.1 单精度自旋框的基本函数 QSpinBox_QDoubleSpinBox Dialog.cpp #include "…

网络安全保险发展起始阶段的挑战及应对措施

文章目录 前言一、网络安全保险的有序发展二、当前我国网络安全保险发展的初期态势(一)网络安全风险类型(二)网络安全保险的作用(三)与外国网络安全保费的规模对比 三、我国网络安全保险发展初期面临的挑战…

vue中常用的指令修饰符

vue中常用的指令修饰符有哪些 在Vue.js中,指令修饰符用于在指令后面以点号(.)形式添加特殊后缀,以表示对指令的特定行为或修饰。 以下是一些常用的Vue.js指令修饰符: 1. v-on ()指令修饰符&am…

vue/vue3/js来动态修改我们的界面浏览器上面的文字和图标

前言&#xff1a; 整理vue/vue3项目中修改界面浏览器上面的文字和图标的方法。 效果&#xff1a; vue2/vue3: 默认修改 public/index.html index.html <!DOCTYPE html> <html lang"en"><head><link rel"icon" type"image/sv…

报考PMI-ACP总费用是多少?费用明细!

ACP认证是由美国项目管理协会&#xff08;PMI&#xff09;推出的针对敏捷项目管理专业人士的资格认证&#xff0c;由于其高含金量受到了不少小伙伴的追捧。那么这个证书考试费多少钱呢&#xff1f;贵不贵呢&#xff1f;我们来一起探讨下。 PMI-ACP认证考试费用分为三个部分&am…

PostgreSQL 低级错误集锦 (不定时更新)

低级错误真的浪费时间且菜&#xff0c;希望不再犯低级重复错误。 1.to_date()函数日期转换报错 SQL语句&#xff1a; SELECT job_date FROM data_check WHERE data_type S; 查询结果&#xff1a; job_date | ---------- 2023-01-28| 我希望用update语句更新job_date字段&…

golang中的字符串拼接

go中常见的字符串拼接方法 假设我们现在要实现这样一个拼接函数&#xff1a; 将字符串重复n次拼接起来&#xff0c;返回一个新字符串。 方法一&#xff1a;使用运算符 func simpleSplice(s string, n int) string {newStr : ""for i : 0; i < n; i {newStr s}…

一种基于嵌入式的卫星基带信号处理系统的制作方法

一种基于嵌入式的卫星基带信号处理系统的制作方法 随着卫星通信技术的不断发展&#xff0c;卫星基带信号处理系统的性能和稳定性要求也越来越高。传统的卫星基带信号处理系统通常采用分立器件和通用处理器&#xff0c;存在着体积庞大、功耗高、集成度低等问题。为了解决这些问题…