想要精通算法和SQL的成长之路 - 相交链表

想要精通算法和SQL的成长之路 - 相交链表

  • 前言
  • 一. 相交链表(双指针)

前言

想要精通算法和SQL的成长之路 - 系列导航

一. 相交链表(双指针)

原题链接
在这里插入图片描述
思路如下:

1.我们假设 headA链表的长度为 aheadB链表的长度为b。两个链表的公共部分长度为c(如果存在),公共节点为node

  • 头结点headAnode前,有a-c个节点。
  • 头结点headBnode前,有b-c个节点。

2.那么我们用两个指针,AB。分别指向两个链表的头节点。

  • 指针A走完链表headA再走链表headB。走到node节点的时候,走过的步数为:a + (b - c)
  • 指针B走完链表headB再走链表headA。走到node节点的时候,走过的步数为:b + (a - c)

首先,两个指针走过的步数一定是相等的,但是对于返回结果而言,我们可以根据c来区分:

  • 如果两个链表存在相交链表,那么c肯定非空,此时指针A或者B都是指向node节点。
  • 如果两个链表无相交部分,那么c的值为0,也就是说此时A或者B的指向是null节点。

因此我们选哪个都可以,最后返回任意一个指针即可,代码如下:

public ListNode getIntersectionNode(ListNode headA, ListNode headB) {ListNode a = headA, b = headB;while (a != b) {// 如果指针a为null,那么继续遍历headB链表,否则继续遍历headA链表。指针b同理a = a == null ? headB : a.next;b = b == null ? headA : b.next;}return a;
}

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

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

相关文章

多线程之基础篇(一)

一、Thread类 1、线程的创建 大家都熟知创建单个线程的三种方式,通过继承Thread类创建线程并重写该类的run()方法;通过实现Runnable接口创建线程一样要重写run()方法;以上的两个run()方法都是线程的执行体;第三,使用…

2024年java面试--mysql(2)

系列文章目录 2024年java面试(一)–spring篇2024年java面试(二)–spring篇2024年java面试(三)–spring篇2024年java面试(四)–spring篇2024年java面试–集合篇2024年java面试–redi…

计算机毕设之基于Hadoop+springboot的物品租赁系统的设计与实现(前后端分离,内含源码+文档+教程)

该系统基于Hadoop平台,利用Java语言、MySQL数据库,结合目前流行的 B/S架构,将物品租赁管理的各个方面都集中到数据库中,以便于用户的需要。在确保系统稳定的前提下,能够实现多功能模块的设计和应用。该系统由管理员功能…

虚拟机Ubuntu操作系统最基本终端命令(安装包+详细解释+详细演示)

虚拟机及乌班图(Ubuntu操作系统) 提示:大家需要软件的可以直接在此链接中提取 链接:https://pan.baidu.com/s/1_4VHGTlXjIuVhBINeOuBCA 提取码:nd0c 文章目录 虚拟机及乌班图(Ubuntu操作系统)终…

E5061B/是德科技keysight E5061B网络分析仪

181/2461/8938产品概述 是德科技E5061B(安捷伦)网络分析仪在从5 Hz到3 GHz的宽频率范围内提供通用的高性能网络分析。E5061B提供ENA系列常见的出色RF性能,还提供全面的LF(低频)网络测量能力;包括内置1 Mohm输入的增益相位测试端口。E5061B从低频到高频的…

根据站点经纬度画全球分布图python

已知几个站点的经纬度,要求画出在全球的分布。 import pandas as pd import matplotlib.pyplot as plt import matplotlib as mpl import cartopy.crs as ccrs import cartopy.feature as cfeature from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter f…

Map集合

Map中常见的API Map<键值对类型&#xff0c; 键值对对象类型> put&#xff08;K key , V value&#xff09;【可以有返回值】 添加/覆盖元素 在添加数据的时候&#xff0c;如果键不存在&#xff0c;那么直接将键对对象添加到map集合当中 在添加数据的时候&#xff0c…

《DevOps实践指南》- 读书笔记(四)

DevOps实践指南 Part 3 第一步 &#xff1a;流动的技术实践11. 应用和实践持续集成11.1 小批量开发与大批量合并11.2 应用基于主干的开发实践11.3 小结 12. 自动化和低风险发布12.1 自动化部署流程12.1.1 应用自动化的自助式部署12.1.2 在部署流水线中集成代码部署 12.2 将部署…

微信小程序开发---基本组件的使用

目录 一、scroll-view &#xff08;1&#xff09;作用 &#xff08;2&#xff09;用法 二、swiper和swiper-item &#xff08;1&#xff09;作用 &#xff08;2&#xff09;用法 三、text &#xff08;1&#xff09;作用 &#xff08;2&#xff09;使用 四、rich-tex…

【备忘】清理Office缓存

【背景】电脑安装了M365 Apps for enterprise的客户端&#xff0c;遇到不常见的奇怪问题。尝试看清理缓存是否可以解决。 【清理步骤】 1. 关闭所有Office365 应用&#xff1b; 2. 搜索 %AppData% &#xff0c;并打开该文件夹&#xff1b; 3. 进到 AppData > Local > M…

AP2813平均电流型双路降压恒流驱动器

产品描述 AP2813 是一款双路降压恒流驱动器,高效率、外围简单、内置功率管&#xff0c;适用于 5-80V 输入的高精度降压 LED 恒流驱动芯片。内置功率管输出功率可达12W&#xff0c;电流 1.2A。AP2813 一路直亮&#xff0c;另外一路通过 MODE1 切换全亮&#xff0c;爆闪。AP281…

UNext:基于 MLP 的快速医学图像分割网络

UNext 会议分析摘要贡献方法整体框架1.Shifted MLP2.Tokenized MLP Stage 实验1.对比实验2.消融实验2.1 模块的消融实验2.2 通道数的探索 可借鉴参考 会议分析 期刊&#xff08;会议&#xff09;名&#xff1a; MICCAI 2022 会议信息&#xff1a; 属于顶会了 有代码&#xff1…