【链表-简单】面试题 02.07. 链表相交

LeetCode面试题02.07.链表相交 算法特点及适用场景特点算法思路清晰简单,通过先计算链表长度,再根据长度差调整指针位置,最后同步遍历比较的方式,有效地解决了判断链表是否相交以及找出相交节点的问题。代码实现相对简洁,易于理解和编码实现,并且不需要额外的复杂数据结构辅助,只利用了基本的指针操作和简单的变量记录长度等信息。时间复杂度为 ,在处理一般规模的链表相交判断问题时,具有较好的时间效率表现,能够在合理的时间内得出结果,尤其是当两个链表长度不是特别长的情况下,可以快速判断相交情况。适用场景。 阅读详情

【题目】

【代码】
【Python】
【方法1:set】
在这里插入图片描述

class Solution:
    def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode:
        s=set()
        while headA:
            s.add(headA)
            headA=headA.next
        while headB:
            if headB in s:
                return headB
            headB=headB.next
        return None

【方法2:dict】
在这里插入图片描述

class Solution:
    def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode:
        dic=dict()
        while headA:
            dic[headA]=dic.setdefault(headA,0)+1
            headA=headA.next
        while headB:
            if dic.setdefault(headB,0):
                return headB
            headB=headB.next
        return None

【方法3】
在这里插入图片描述

class Solution:
    def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode:
        L_A,L_B=0,0
        t=headA
        while t:
            L_A+=1
            t=t.next
        t=headB
        while t:
            L_B+=1
            t=t.next
        diff=abs(L_A-L_B)
        if L_A<L_B:
            t=headA
            headA=headB
            headB=t
        while diff:
            diff-=1
            headA=headA.next
        while headA:
            if headA==headB:
                return headA
            headA=headA.next
            headB=headB.next
        return None        

【方法4:两条通路】
在这里插入图片描述

class Solution:
    def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode:
        ha,hb=headA,headB
        while ha!=hb:
            ha=headB if ha is None else ha.next
            hb=headA if hb is None else hb.next
        return hb
面试题 02.07. 链表相交 面试题 02.07. 链表相交给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回null。图示两个链表在节点c1开始相交题目数据整个链式结构中不存在环。,函数返回结果后,链表必须。相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。在 A 中,相交节点前有 2 个节点;在 B 中,相交节点前有 3 个节点。 阅读详情

相关推荐

保姆级教程:用LoRA微调Chinese-Mistral-7B模型,并一键部署到Ollama(附完整代码)

本文提供了一份详细的LoRA微调Chinese-Mistral-7B模型的保姆级教程,涵盖环境配置、数据预处理、微调实战、模型量化及Ollama部署全流程。通过实战案例和完整代码,帮助开发者快速构建专属中文大模型,适用于医疗、法律等垂直领域。

weixin_30369041的博客 251

02.07.链表相交

02.07_链表相交

the_singular的博客 2562

Vivado工程芯片型号更换全流程:从IP更新到生成新bit文件(避坑指南)

本文详细介绍了Vivado工程中更换芯片型号的全流程,包括IP更新、约束文件适配和生成新bit文件的关键步骤。特别针对FPGA开发中常见的兼容性问题提供避坑指南,帮助开发者高效完成芯片迁移,确保设计稳定性和性能优化。

weixin_42549451的博客 300

LeetCode题目笔记——面试题 02.07. 链表相交

LeetCode面试题 02.07. 链表相交

一个苦逼研究僧的博客 665

自动驾驶关键技术(一):时间敏感网络TSN

时间敏感网络TSN的基本概念、协议族介绍和开发流程。

3081

强化学习——day16 动态规划算法

动态规划(dynamic programming)是程序设计算法中非常重要的内容,能够高效解决一些经典问题,例如背包问题和最短路径规划。动态规划的基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到目标问题的解。动态规划会保存已解决的子问题的答案,在求解目标问题的过程中,需要这些子问题答案时就可以直接利用,避免重复计算。本章介绍如何用动态规划的思想来求解在马尔可夫决策过程中的最优策略

想太多的学习日志 1551

链表篇 02.07. 链表相交

02.07. 链表相交(难度 简单) 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示两个链表在节点 c1 开始相交:示例 提示: listA 中节点数目为 m listB 中节点数目为 n 0 <= m, n <= 3 * 104 1 <= Node.val <= 105 0 <= skipA <= m 0 <= skipB <= n 如果 listA 和 list

qq_39338091的博客 1168

配置 NVIDIA RTX 5090 + sm_120 + flashattention,已跑通一个大模型 ~~

本文介绍了在Ubuntu 22.04系统下为NVIDIA RTX 50系显卡搭建深度学习环境的完整流程。重点包括:1)安装适配50系显卡(sm_120架构)的CUDA 12.9驱动和Toolkit,需注意禁用系统自带驱动;2)配置环境变量解决nvcc命令识别问题;3)通过源码编译方式安装支持sm_120的PyTorch nightly版本(cu129),解决官方二进制包不兼容问题。整个过程涉及显卡驱动安装、CUDA环境配置、PyTorch适配等关键步骤,并提供了详细的验证方法和常见问题解决方案。文中特别强调

qq_36674060的博客 6160

面试题02.07 链表相交

题目大概练过leetcode的链表部分估计都做过这道题; 示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个列表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。在 A 中,相交节点前

qq_20880939的博客 318

解锁激光加工密码:功率、频率、脉宽、占空比全解析

激光加工利用高能量激光束实现材料加工,具有无接触、高效率等特点。其核心参数包括功率(决定能量输出)、频率(控制脉冲重复)、脉宽(调节能量作用时间)和占空比(调控工作周期),这些参数相互协同影响加工效果。针对不同材料需采用差异化参数组合:金属材料需较高功率,塑料需低功率防过热,陶瓷需高频短脉宽减少热应力。实际操作中应通过小范围测试逐步优化参数,并注意解决烧损、切割不平整等常见问题。合理调节这些参数可实现高质量、高效率的激光加工。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 618

AI产品经理面试宝典第9天:关于AI产品经理的挑战与转型怎么回答

AI技术重构产品逻辑,AI产品经理需直面三大核心命题:用户定位差异、技术融合边界、商业价值转化。本文从千道真题中提炼出面试高频考点,剖析AI产品经理如何突破传统思维定式,在B端需求与C端体验间构建价值桥梁,用数据驱动产品创新,破解技术落地的隐性壁垒。掌握这三重跃迁法则,助你在AI浪潮中脱颖而出。

打造全国最全的AI Agent开发知识领域的博客 177

Leetcode 面试题02.07. 链表相交

给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回null。

V_Akoasm的博客 334

​​光流结合深度学习实现物体运动方向判断

光流计算:提取每一帧视频中像素的运动信息,生成光流图。光流特征提取:通过特定的预处理,将光流图转换为深度学习模型可用的输入格式。深度学习模型设计:构建一个卷积神经网络(CNN)或其他适合的深度学习架构,利用光流特征进行运动方向分类。模型训练与推理:对网络进行训练并使用训练好的模型判断运动方向。光流与深度学习结合的运动方向判断技术在多个领域具有广泛的应用前景。通过光流提取像素级动态信息,并利用深度学习模型学习高层次特征,可以实现高精度的运动检测与方向判断。

matlab_python22的博客 322

力扣面试题02.07.链表相交

从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。时间复杂度: O(m+n) 遍历链表A:O(m),遍历链表B:O(n)同步指针:O(t)从各自的表头开始算起,链表 A 为 [0,9,1,2,4],链表 B 为 [3,2,4]。从各自的表头开始算起,链表 A 为 [2,6,4],链表 B 为 [1,5]。如果当前节点在哈希集合中,则后面的节点都在哈希集合中,返回该节点。相交节点的值为 2 (注意,如果两个链表相交则不能为 0)。

m0_74931837的博客 1831

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

4-3 代码随想录 第二章 链表part02 面试题 02.07. 链表相交

给定两个单链表,判断它们是否相交,并返回相交的节点。如果两个链表不相交,则返回。该方法通过对齐两个链表的长度,使遍历更加高效,并且逻辑清晰。同时遍历两个链表,当两个指针指向相同节点时即找到了交点;使用两个指针分别遍历两个链表,并记录它们的长度。步,这样两个链表可以从相同位置开始对齐。

ii_fan的博客 2111

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Leetcode刷题 由浅入深之链表——面试题02.07. 链表相交

【题目】给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。

m0_57082284的博客 1297

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

[LeetCode]day14面试题02.07.链表相交

如果两条链表的长度不同,如上图,可以先移动较长的链表的指针,使他们的尾部对齐(即没有遍历的结点数相同),这时就能一起移动两个指针了。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。从各自的表头开始算起,链表 A 为 [0,9,1,2,4],链表 B 为 [3,2,4]。要注意理解题意,这里的不是找值相等的节点,而是地址相同的节点,即指向同一结点的指针相同。从各自的表头开始算起,链表 A 为 [2,6,4],链表 B 为 [1,5]。

qq_65173003的博客 933

力扣.面试题02.07.链表相交

同:160.链表相交给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构。

2501_93509832的博客 945

链表面试题之链表相交问题

如果你放弃那便没有人可以救得了你了,反而如果你坚持下去或许会有不一样的收获

微风 3689

【算法训练】day11链表相交&环形链表

给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回null。图示两个链表在节点c1开始相交题目数据整个链式结构中不存在环。,函数返回结果后,链表必须。相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。在 A 中,相交节点前有 2 个节点;在 B 中,相交节点前有 3 个节点。

do better. 1106

力扣:面试题 02.07. 链表相交

题目链接:面试题 02.07. 链表相交 题目: 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数返回结果后,链表必须 保持其原始结构 。 示例 1: 输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3

qq_46111138的博客 1407

链表 6. 链表相交

时间复杂度 O(a+b) : 最差情况下(即 ∣a−b∣=1 , c=0 ),此时需遍历 a+b 个节点。空间复杂度 O(1) : 节点指针 A , B 使用常数大小的额外空间。先求长度,然后去掉长的那一条的前部使得两条链表长度一致。解析见链接,看懂了换个情景也不一定想得到()时间复杂度:O(n + m)等价于两指针在同一结点上,等价于两指针指向同一地址,空间复杂度:O(1)**优雅解法:**​。

m0_49844155的博客 552

面试题02.07.链表相交

给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回null。图示两个链表在节点c1开始相交题目数据整个链式结构中不存在环。,函数返回结果后,链表必须。相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。在 A 中,相交节点前有 2 个节点;在 B 中,相交节点前有 3 个节点。

MayByUP的博客 1413

12-算法打卡-链表-链表相交-leetcode(面试题02.07)-第十二天

面试题 02.07. 链表相交 - 力扣(LeetCode)面试题 02.07. 链表相交 - 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null。

Bonnie_1215的博客 1171
上一篇: 【链表-简单】876. 链表的中间结点(三种解法:单双指针、辅助数组)
下一篇: 【链表-简单】面试题 02.01. 移除重复节点
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值