当前位置: 首页 > news >正文

【链表】- 链表相交

1. 对应力扣题目连接

  • 链表相交

2. 实现思路

  • 链表详情:
    在这里插入图片描述

考虑使用双指针:

解法一:
  • 具体代码,详见3. 实现案例代码
  • 解析:
    思路:因为链表按照如图的箭头走向,走的总路程是相等的,一定会相交于c点
    • 如图:
      在这里插入图片描述
    • 如图:因为总的里程数相等一定会相交于c点,即:得到相交的节点8,作为头节点返回即可。
解法二:
  • 待续:很快进行补充…

2. 实现案例代码

public class IntersectionOfLinkedLists {public static void main(String[] args) {// 示例链表:[4, 1, 8, 4, 5]ListNode headA = new ListNode(4);headA.next = new ListNode(1);ListNode intersectNode = new ListNode(8);headA.next.next = intersectNode;intersectNode.next = new ListNode(4);intersectNode.next.next = new ListNode(5);// 示例链表:[5, 0, 1, 8, 4, 5]ListNode headB = new ListNode(5);headB.next = new ListNode(0);headB.next.next = new ListNode(1);headB.next.next.next = intersectNode;// 找到相交节点ListNode result = getIntersectionNode(headA, headB);if (result != null) {System.out.println("Intersected at '" + result.val + "'");} else {System.out.println("No intersection");}}/*** 解法一:* @param headA* @param headB* @return*/public static ListNode getIntersectionNode(ListNode headA, ListNode headB) {if (headA == null || headB == null) {return null;}ListNode pA = headA;ListNode pB = headB;// 继续循环,直到两个指针相遇while (pA != pB) {// 如果 pA 到达末尾,将其重定位到 headBpA = (pA == null) ? headB : pA.next;// 如果 pB 到达末尾,将其重定位到 headApB = (pB == null) ? headA : pB.next;}// 当 pA == pB 时,要么是相交节点,要么是 nullreturn pA;}}
http://www.lryc.cn/news/395389.html

相关文章:

  • 【python 学习】快速了解python内置类型
  • npm ERR! code ENOTEMPTY npm ERR! syscall rename npm ERR!
  • 智能井盖采集装置 开启井下安全新篇章
  • C# AGV小车通讯开发的方法
  • 01-图像基础-颜色空间
  • 双向链表+Map实现LRU
  • HTML(27)——渐变
  • 2024上半年网络工程师考试《应用技术》试题一
  • pnpm介绍
  • Linux内核的启动过程(非常详细)零基础入门到精通,收藏这一篇就够了
  • 相关分析 - 肯德尔系数
  • 【咨询】企业数字档案馆(室)建设方案-模版范例
  • selfClass 与 superClass 的区别
  • 秒懂设计模式--学习笔记(6)【创建篇-建造者模式】
  • 领略超越王勃的AI颂扬艺术:一睹其惊艳夸赞风采
  • Linux走进网络
  • go语言Gin框架的学习路线(六)
  • Java面经知识点汇总版
  • 详细分析Sql Server中的declare基本知识
  • Perl 语言入门:编写并执行你的第一个脚本
  • python库 - missingno
  • VPN的限制使得WinSCP无法直接连接到FTP服务器解决办法
  • PCI DSS是什么?
  • DeepMind的JEST技术:AI训练速度提升13倍,能效增强10倍,引领绿色AI革命
  • 如何使用 pytorch 创建一个神经网络
  • Java版Flink使用指南——定制RabbitMQ数据源的序列化器
  • CV每日论文--2024.7.8
  • 【AI大模型】赋能儿童安全:楼层与室内定位实践与未来发展
  • 云服务器linux系统安装配置docker
  • 泰勒雷达图2