编程题—LeetCode160. 相交链表

GPU运维面试题 【代码】GPU运维面试题。 阅读详情
题目链接
题目描述
编写一个程序,找到两个单链表相交的起始节点。

注意:

如果两个链表没有交点,返回 null.
在返回结果后,两个链表仍须保持原有的结构。
可假定整个链表结构中没有循环。
程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/intersection-of-two-linked-lists
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路
普通版

分别计算两个链表的长度
长的先走n-m步
两个个一起走,就能得到公共节点

普通版代码
public class Solution {
    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        if ((headA==null)||(headB==null)) return null;
        
        int num1=0;
        ListNode p=headA;
        while(p!=null){
            num1++;
            p=p.next;
        }
        int num2=0;
        ListNode q=headB;
        while(q!=null){
            num2++;
            q=q.next;
        }
        if (num1>num2){
            int count=num1-num2;
            while(count!=0){
                headA=headA.next;
                count--;
            }
        }else if (num1<num2){
            int count=num2-num1;
            while(count!=0){
                headB=headB.next;
                count--;
            }
        }
        while(headA!=null){
            if (headA==headB){
                return headA;
            }
            headA=headA.next;
            headB=headB.next;
        }
        return null;
    }
}

高级版

两个链表同时走
第一个链表如果走到头,就从第二个链表开始走
第二个链表如果走到头,就从第一个链表开始走
和普通版原理一样,相当于长链表先走了n-m步

高级版代码
public class Solution {
    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        if ((headA==null)||(headB==null)) return null;
        ListNode p = headA;
        ListNode q = headB;
        int flag=0;
        while(true){
            if (p==null){
                if (flag==2) return null;
                p=headB;
                flag++;
            }
            if (q==null){
                if (flag==2) return null;
                q=headA;
                flag++;
            }
            if (p==q){
                return p;
            }
            p=p.next;
            q=q.next;
        }
    }
}
AHB不对称半桥反激电路设计(三)主要器件参数规格计算 本文介绍了AHB拓扑变压器的设计步骤与核心参数计算,包括主控芯片选择、工作原理分析及参数计算。作者选择DK87XXD集成MOS方案,详细阐述了输入电压范围、反射电压限定、匝比计算、工作频率设定、原副边电流值、电感量计算、磁芯选择、匝数计算、谐振电容设计等关键步骤。通过公式推导与实例计算,展示了150W电源的变压器设计过程,最终确定匝比5.5、原边22匝、副边4匝、电感量200uH等参数。文章还讨论了谐振电容与漏感的关系,为后续调试提供理论基础。该设计方法结合理论分析与工程实践,适用于AHB拓扑电源开发。 阅读详情

相关推荐

基于 SquashFS 构建 Linux 可读写文件系统

嵌入式 Linux 启动过程 本文所描述的的 Linux Image 由 BootLoader、kernel、initrd、rootfs 组成,它们共同存在于一个可以启动的存储设备中(本文以 USB 为例)。组成架构如下: 图 1. 可启动 linux 镜像文件结构 各个模块的作用如下: Boot Loader:由 BIOS 加载,用于将后续的 Kernel 和 initrd 的装载到内存中 kernel:为 initrd 运行提供基础的运行环境 initrd:检测并加载各种驱动程序 ro

wzq2009的专栏 1174

链表经典练习题

链表经典练习题 一、从尾到头打印单链表 因为单链表是有指向的,前一节点只能指向下一节点,因此为了实现从尾到头打印链表可以使用一种非常简单的方法就是递归,先遍历再输出。 代码实现: void LinkListReversePrint(LinkNode* head){ 85 if(head == NULL){ 86 return;//空链表 8...

erwuhuoche的博客 2万+

RK3588+TRL8367s 四网口千兆交换机配置与优化实战

本文详细介绍了基于RK3588高性能SoC与TRL8367s千兆交换芯片构建四网口交换机的完整实战流程。内容涵盖硬件连接、设备树配置、内核驱动加载、性能优化及常见问题排查,重点解析了RGMII时序调试、DSA架构配置等关键步骤,为嵌入式网络设备开发提供实用指南。

weixin_29266647的博客 672

链表交点问题

链表交点问题也属公司青睐的专题之一,一般依靠双指针来解决,主要分为链表判环和链表相交两大专题。 142.Linked List Cycle II 题意: 判断链表是否有环,若有环,则返回环入口节点。 思路: 这题就是典型的快慢指针问题,代码很简单,但具体理论证明却十分值得研究。 首先先说解法, 分两部分,判环和寻找入口: 判环部分,设置两个指针(快指针fa一次走两个节点,慢指针sl一次走一个节点),若快指针走到了链表尾即空节点则说明链表无环,否则在环中快慢指针必能相遇。 寻找入口部分,慢指.

Owen_Q的博客 609

Fusion 360嵌入式外壳建模实战:从草图到可装配结构

参数化三维建模是现代电子结构设计的核心能力,其本质是通过几何约束与特征驱动实现设计意图的精确表达和快速迭代。Fusion 360作为集成CAD/CAM/CAE的云端平台,以时间轴驱动的参数化工作流、基于基准面的草图约束机制和面向制造的特征操作逻辑,显著提升了嵌入式硬件的结构验证效率。该技术价值在于支持工程师在无专业机械背景前提下,独立完成PCB适配、散热布局、接口开孔与装配干涉检查等关键任务,广泛应用于3D打印原型、CNC加工外壳及IoT终端结构开发。本文以ESP32冰箱监控终端为实例,详解从基准定义、草图

weixin_35671843的博客 588

3D视觉引导技术在机器人焊接中的应用

通过对比传统的2D视觉和3D视觉技术在焊接领域的应用差异,探讨了3D视觉引导技术在提高焊接精度、适应不规则工件形状和增强自适应能力方面的优势。本文对3D视觉引导技术在机器人焊接中的应用进行了深入探讨,总结了其在提高焊接精度、适应不规则工件形状和增强自适应能力方面的优势,并通过应用案例展示了其在焊接路径规划、焊缝检测和焊接质量控制等方面的重要作用。1. 提高焊接精度:3D视觉引导技术能够精确测量焊接工件的三维形状和位置,为机器人提供精准的焊接路径规划和跟踪,从而提高焊接精度。三、3D视觉引导技术概述。

2302_79273122的博客 1835

LeetCode每日一题:相交链表

题目:编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 在节点 c1 开始相交。 示例 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 输入解释:相交节点的值...

Lin_Willen的博客 300

Unreal5从入门到精通 专栏目录

欢迎来到“UE5从入门到精通”专栏!在这里,我们将带您踏上一段精彩的旅程,深入探索虚幻引擎5(Unreal Engine 5)的无限可能。不论您是游戏开发的新手,还是希望提升技能的开发者,这里都有适合您的内容。基础知识:了解虚幻引擎5的界面、功能和基本操作,为您的学习打下坚实的基础。项目实战:通过实际项目案例,帮助您从理论走向实践,真实体验游戏开发的每个环节。高级技巧:分享各种高级功能和技巧,包括蓝图、C++编程、材质编辑、光照和渲染等,让您能够创作出更具专业水准的作品。

TxNet 2987

精选50题之 160. 相交链表

腾讯精选练习(50 题)之 160. 相交链表原题目链接直接实现题目分析解题分析代码实现其他方式写在最后 原题目链接 编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 在节点 c1 开始相交。 示例 1: 输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3 ...

Ivan Zhang的博客 249

图像处理基础 || (一) python 读取图像的常用方式

图像的读取与保存是图像处理或计算机视觉领域中最基本的操作,python中有众多的库支持图像的读取、显示与存储,常用的库包括 matplotlib、skimage 和 Pillow 库。

weixin_40234309的博客 5688

超级全的PCB LAYOUT高速信号走线指南——简化应用版

在PCB Layout中,几乎涵盖了所有的高速信号走线指南。包括了TF/SD、HDMI、LVDS、DVP、eDP、MIPI、USB2.0、USB3.0、MAC、BT.1120、PCIE高速信号等等。此版本为简化版。

bhxc809751502的博客 8548

Leetcode 160.相交链表(Intersection of Two Linked Lists)

Leetcode 160.相交链表 1 题目描述(Leetcode题目链接)   编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表: 在节点 c1 开始相交。 输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3 输出:Reference of the node w...

qq_39378221的博客 163

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

leetcode_ 160 相交链表

摘要 本文介绍了查找两个单链表相交节点的两种方法:哈希表和相交拼接。哈希表法通过存储一个链表的节点,再遍历另一个链表查找匹配;相交拼接法利用链表拼接后的长度特性,通过双指针遍历找到交点。两种方法的时间复杂度均为O(m+n),空间复杂度分别为O(m)和O(1)。代码实现展示了两种方法的详细步骤,适用于编程面试中的链表相关问题。

bdn_nbd的博客 392

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

LeetCode刷题---160. 相交链表(双指针-对撞指针)

大家好,又见面了,我是夜阑的狗,本文是专栏【LeetCode题解】专栏的第14篇文章,主要讲解是LeetCode160. 相交链表(双指针-对撞指针)。【LeetCode题解(持续更新中)】, 此专栏是我是夜阑的狗对LeetCode问题的讲解,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。

JMFive的博客 1095

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【LeetCode】160. 相交链表(JAVA)

练习题:相交链表 题目要求 编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 在节点 c1 开始相交。 示例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 为

qq_44162521的博客 330

力扣热题100道之160相交链表

的输入如下(你设计的程序。

m0_63695860的博客 784

day92—链表—相交链表(LeetCode-160)

的输入如下(你设计的程序。

the_dry的博客 670

LeetCode160-相交链表

编写一个程序,找到两个单链表相交的起始节点。

weixin_45138411的博客 138

[链表] LeetCode 160. 相交链表

[链表] LeetCode 160. 相交链表 编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表**:** 在节点 c1 开始相交。 示例 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 va...

缇欧的咪西 242

LeetCode刷题日记 160.相交链表

LeetCode刷题日记 160.相交链表 题目描述: 编写一个程序,找到两个单链表相交的起始节点。 题目来源:https://leetcode-cn.com/problems/intersection-of-two-linked-lists/ 解法1:双指针 当指针跑完一个链表时,就去跑另一个链表,另一个指针也如此。如果两个链表相交的话,这两个指针总能相遇 public class Solu...

Cherish@WVv 244

LeetCode160. 相交链表(小白写法)

欢迎关注我的 力扣github仓库,有JavaScript和C++两个版本,每日更新 写在前面: 我这里有两种写法 小白解法:让较长的链表跑完多余的部分,再让两链表同时跑,相等返回即结果,否则返回空 双指针的解法,两链表同时进行,链表a跑完自己的部分再去跑b的部分,链表b跑完自己部分也去跑a的部分。这样他们如果有相同部分必会遇到,此时返回即结果,否则返回为空 C++代码: /** * Def...

Gary的博客 230

leetcode #160 相交链表

题目描述: 编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 在节点 c1 开始相交。 该题是leetcode链表的简单题,思路:先比较两个链表的长度,将长的链表头指针移动到和短的链表对齐,然后同时遍历两个链表,若两个指针相等,则找到;反之返回null,没有找到相交起始节点。 代码如下: public class Solution { public ListNode ge...

月月鸟的博客 183

LeeCode160: 相交链表

编写一个程序,找到两个单链表相交的起始节点。

SNAYi 237

leetcode-160-相交链表

一、题目 题目链接:160-相交链表 编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 在节点 c1 开始相交。 示例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 输入解...

小黄鸡成长之路 143

160. 相交链表

编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 在节点 c1 开始相交。 示例 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 (注意,如果两...

qq_39360744的博客 117

Number.160——相交链表

题目链接:https://leetcode-cn.com/problems/intersection-of-two-linked-lists/ 编写一个程序,找到两个单链表相交的起始节点。 输入: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 (注意,如果两个链表相交则不能为

学而不思则忘 162
上一篇: 编程题—leetcode229. 求众数 II—深入理解摩尔投票法
下一篇: 编程题—leetcode:148. 排序链表
code_AC
博客等级 码龄12年 255粉丝 109原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值