LeetCode | 160. 相交链表

news2024/10/3 8:30:46

LeetCode | 160. 相交链表

O链接
在这里插入图片描述

  • 我们这里有两个问题,一是判断是否相交,二是找交点

思路一: 暴力求解
A链表所有节点依次取B链表找一遍(时间复杂度是O(N^2))

struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {
    struct ListNode *headBbak = headB;
    while(headA != NULL)
    {
        while(headB != NULL)
        {
            if(headA == headB)
                return headA;
            headB = headB->next;
        }
        headA = headA->next;
        headB = headBbak;
    }
    return NULL;
}

思路二: 优化->要求时间复杂度到O(N)

分别找到尾结点,尾节点地址相同就相交
分别找到尾结点,尾节点地址不相同就不相交

分别求出A和B的长度~~
长的先走差距步,再同时走,第一个相同的就是交点


struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {
    struct ListNode* curA = headA, *curB = headB;
    //计算长度
    int lenA = 1,lenB = 1;
    while(curA->next)
    {
        lenA++;
        curA = curA->next;
    }
    while(curB->next)
    {
        lenB++;
        curB = curB->next;
    }
    //判断相交
    while(curA != curB)
    {
        return NULL;
    }
    int n = abs(lenA - lenB);
    //假设headA长,headB短
    struct ListNode* longList = headA, *shortList = headB;
    if(lenA < lenB)
    {
        longList = headB;
        shortList = headA;
    }
    //让长链表先走n步
    while(n--)
    {
        longList = longList->next;
    }
    //两个链表同时走,直到遇到相同的节点
    while(longList != shortList)
    {
        longList = longList->next;
        shortList = shortList->next;
    }
    //相遇了,直接return
    return longList;
}

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

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

相关文章

QT not in executable format:file truncated

今天在调研串口打印机的时候出现的&#xff0c;串口打印机有sdk&#xff0c;自己qt的编辑器用的 MinGW 64&#xff0c;编译出现次错误 出现这个错误&#xff0c;主要是sdk和编译器的版本位数不一致。 修改方法&#xff1a;把MinGW64 改为MinGW32&#xff0c;不过这个根据使用的…

为什么说制造企业需要部署MES管理系统

在数字化浪潮席卷的今天&#xff0c;每个企业都期望通过新技术、新模式来优化自身的运营。这其中&#xff0c;MES管理系统成为了不少企业的首选。那么&#xff0c;为何企业需要部署MES管理系统&#xff1f;又该如何搭建MES管理系统呢&#xff1f; 一、企业缘何钟情于MES系统&am…

LeetCode-20-有效的括号

1.我的暴力解法 class Solution {public boolean isValid(String s) {Stack<Character> stknew Stack<Character>();int i0;//奇数直接不可能是匹配的if(s.length()%2!0)return false;for (;i<s.length();i){if(s.charAt(i)(){stk.push(();}else if(s.charAt(i…

NVM安装node后提示没有对应npm包(即:无法将“npm”项识别为 cmdlet、函数、脚本文件)

背景 windows11 node版本降低到v12.22.12后&#xff0c;执行&#xff1a;nvm -v npm -v npm : 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写&#xff0c;如果 包括路径&#xff0c;请确保路径正确&#xff0c;然后再试一次。 所在位置 …

【bug-maven】(一)java: 错误: 不支持发行版本 5 (二):java: 错误: 无效的源发行版:15

【bug-maven】&#xff08;一&#xff09;java: 错误: 不支持发行版本 5 &#xff08;二&#xff09;&#xff1a;java: 错误: 无效的源发行版&#xff1a;15 &#xff08;一&#xff09;java: 错误: 不支持发行版本 5 报错截图&#xff1a; 出错原因&#xff1a; 打开Projec…

GoLong的学习之路(番外)如何使用依赖注入工具:wire

我为什么要直接写番外呢&#xff1f;其原因很简单。项目中会使用&#xff0c;其实在这里大家就可以写一些项目来了。 依赖注入的工具本质思想其实都大差不差。无非控制反转和依赖注入。 文章目录 控制反转为什么需要依赖注入工具 wire的概念提供者&#xff08;provider&#x…

易云维®工厂能耗管理平台系统方案,保证运营质量,推动广东制造企业节能减排

我国《关于完整准确全面贯彻新发展理念推进碳达峰碳中和工作的实施意见》出台&#xff0c;提出了推进碳达峰碳中和工作的总体目标。到2025年&#xff0c;广东具备条件的地区、行业和企业率先实现碳达峰&#xff0c;为全省实现碳达峰、碳中和奠定坚实基础&#xff1b;2030年前实…

51单片机+SIM800C(GSM模块)实现短信发送功能

一、前言 本项目利用51单片机和SIM800C GSM模块实现短信发送功能。短信作为一种广泛应用的通信方式&#xff0c;在许多领域具有重要的作用&#xff0c;如物联网、安防系统、远程监控等。通过将51单片机与SIM800C GSM模块相结合&#xff0c;可以实现在各种应用场景下的短信通信…

美国光量子计算解决方案公司QCI正式开启量子计算商业化道路!

​&#xff08;图片来源&#xff1a;网络&#xff09; Quantum Computing Inc&#xff08;QCI&#xff09;是一家率先实现上市的全栈式光量子计算解决方案公司&#xff0c;近日&#xff0c;美国量子计算公司QCI&#xff08;纳斯达克代码: QUBT&#xff09;宣布&#xff0c;其在…

Xilinx DDR3 MIG系列——内存基本概念及原理

本节目录 一、内存简介 (1)内存基本存储原理 (2)内存频率 (3)DDR数据预取技术(Prefetch) (4)DDR3工作流程 (5)DDR3控制器的特点 二、内存基本参数 (1)物理Bank (2)逻辑Bank (3)内存芯片容量 (4)行激活命令—tRCD (5)列选通—CL (6)写入延迟—tDQSS (7)行预充电有效周期—tRP (8…

同样是BGA扇出,为什么别人设计出来的性能就是比你好!

高速先生成员--黄刚 高速先生经常会说一句话&#xff0c;那就是对于信号质量的优化是无极限的&#xff0c;这里说的优化&#xff0c;其实说的就是PCB的设计优化。首先肯定的是&#xff0c;不同的设计工程师去做同样一块PCB板的设计&#xff0c;做出来的肯定都不会完全一样。那不…

DVWA靶场SQL注入

本次注入的是DVWA靶场的SQL injection 1.判断是字符型注入还是数字型注入&#xff0c;构造SQL语句 1 and 12 由此可以判断出为字符型注入 2.考虑闭合方式&#xff0c;先随便丢一个单引号试试看看报错提示 You have an error in your SQL syntax; check the manual that cor…

C语言C位出道心法(二):结构体

C语言C位出道心法(一):基础语法 C语言C位出道心法(二):结构体 一:C语言结构体认知 忙着去耍帅,后期补充完整...........

python简易定时调度

在python中&#xff0c;一般定时调度会使用apscheduler,更基础的我们会使用sched包来实时调度。有时候也是会使用time.sleep的方式来配合使用。在实际的生产中&#xff0c;单纯使用time.sleep会出现睡眼之后程序无法被唤醒的情况&#xff0c;所以后来会尽量的避免使用这种方式。…

Django初窥门径-项目初始化

环境准备 切换pypi源 运行下面的脚本将pypi源切换为阿里云镜像&#xff0c;避免安装python库的过程中出现网络问题 #!/bin/bash# 定义配置内容 config_content"[global] index-url http://mirrors.aliyun.com/pypi/simple/[install] trusted-hostmirrors.aliyun.com &…

VSCode修改主题为Eclipse 绿色护眼模式

前言 从参加开发以来&#xff0c;一直使用eclipse进行开发&#xff0c;基本官方出新版本&#xff0c;我都会更新。后来出来很多其他的IDE工具&#xff0c;我也尝试了&#xff0c;但他们的主题都把我劝退了&#xff0c;黑色主题是谁想出来&#xff1f;&#x1f602; 字体小的时…

马斯克发布大模型Grok;主流AI创意生成工具图谱;Runway视频大赛获奖作品解析;DALL-E 3图像混合操作;42章经播客推荐 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f440; 马斯克「xAI」发布首个AI大模型「Grok」 https://grok.x.ai 11月5日&#xff0c;马斯克旗下人工智能公司 xAI 发布了首款 AI 聊天产品…

(附源码)基于微服务架构的餐饮系统的设计与实现-计算机毕设 86393

基于微服务架构的餐饮系统的设计与实现 摘 要 近年来,我国经济和社会发展迅速,人们物质生活水平日渐提高,餐饮行业更是发展迅速,人们对于餐饮行业的认识和要求也越来越高。传统形式的餐饮行业都是以人为本,管理起来需要很多人力、物力、财力,既不方便管理者的管理,也不方便顾…

YB506A是一款锂电池充、放电管理专用芯片,集成锂电池充电管理和降压DCDC电路

YB506A 锂电转可充电AA/AAA电池专用SOC芯片 概述&#xff1a; YB506A是一款锂电池充、放电管理专用芯片&#xff0c;集成锂电池充电管理和降压DCDC电路。充电过程满足锂电池三段式滑流/恒流/恒压充电规范&#xff0c;YB506A内部的线性充电电路采用了恒流可配置模式&#xff0…

基于食肉植物算法的无人机航迹规划-附代码

基于食肉植物算法的无人机航迹规划 文章目录 基于食肉植物算法的无人机航迹规划1.食肉植物搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用食肉植物算法来优化无人机航迹规划。 …