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

【Leedcode】数据结构中链表必备的面试题(第四期)

【Leedcode】数据结构中链表必备的面试题(第四期)


文章目录

  • 【Leedcode】数据结构中链表必备的面试题(第四期)
    • 1.题目
    • 2.思路+图解
    • (1)思路一
    • (2)思路二
    • 3.源代码
  • 总结


1.题目

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

1.判断两个链表是否相交? 2.如果相交,求交点


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


2.思路+图解

(1)思路一

暴力求解-穷举法。依次取A链表中的每个节点跟B链表中的所有结点比较。
如果有相同的结点,就是相交,第一个相同的交点就是公共结点。这样做的时间复杂度为:O(N^2)
那么我们如何把时间复杂度优化到:O(N)


(2)思路二

1.尾结点相同就是相交,否则就不相交
2.求交点:长的链表先走(长度差)步,再同时走,第一个相同的结点就是交点
具体如下图


在这里插入图片描述


再这里要注意:可以用lenA和lenB去算两个链表的长度,方便求交点位置,如下图
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


3.源代码

代码如下(示例):

struct ListNode 
{int val;struct ListNode *next;
};
struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB)
{struct ListNode* pheadA = headA;struct ListNode* pheadB = headB;//先判断是否为环形结构int lenA = 1;while(pheadA -> next){lenA++;pheadA = pheadA -> next;}int lenB = 1;while(pheadB -> next){lenB++;pheadB = pheadB -> next;}if(pheadA != pheadB){return NULL;}int sub = abs(lenA - lenB);struct ListNode* longlist = headA;struct ListNode* shortlist = headB;if(lenA < lenB){longlist = headB;shortlist = headA;}//长的先走sub步while(sub--){longlist = longlist -> next;}//俩个开始一起走while(longlist != shortlist){longlist = longlist -> next;shortlist = shortlist -> next;}return longlist;
}

总结

以上就是今天要讲的内容,本文介绍数据结构中链表必备的面试题(第四期)
如果我的博客对你有所帮助记得三连支持一下,感谢大家的支持!
在这里插入图片描述

相关文章:

【Leedcode】数据结构中链表必备的面试题(第四期)

【Leedcode】数据结构中链表必备的面试题&#xff08;第四期&#xff09; 文章目录【Leedcode】数据结构中链表必备的面试题&#xff08;第四期&#xff09;1.题目2.思路图解(1)思路一(2)思路二3.源代码总结1.题目 相交链表&#xff1a; 如下&#xff08;示例&#xff09;&…...

【2023】助力Android金三银四面试

前言 新气象&#xff0c;新生机。在2023年的Android开发行业中&#xff0c;又有那些新的面试题出现呢&#xff1f;对于Android面试官的拷问&#xff0c;我们又如何正确去解答&#xff1f;万变不离其宗&#xff0c;其实只要Android的技术层面没变化&#xff0c;面试题也就是差不…...

Leetcode.1801 积压订单中的订单总数

题目链接 Leetcode.1801 积压订单中的订单总数 Rating &#xff1a; 1711 题目描述 给你一个二维整数数组 orders&#xff0c;其中每个 orders[i] [pricei, amounti, orderTypei]表示有 amounti笔类型为 orderTypei、价格为 pricei的订单。 订单类型 orderTypei 可以分为两种…...

红帽Linux技术-cp命令

cp是一个复制文件或者目录的命令&#xff0c;其作用是将一个或多个文件或目录从源位置复制到目标位置。 格式&#xff1a;cp [选项] 源文件或目录 目标文件或目录 常用选项&#xff1a; -r&#xff1a;复制目录及其子目录下的所有文件和目录&#xff1b; -p&#xff1a;保留…...

代码随想录算法训练营day41 | 动态规划 01背包问题基础 01背包问题之滚动数组

01背包问题基础 问题描述 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求解将哪些物品装入背包里物品价值总和最大。 举个栗子 背包最大重量为4。 物品为&#xff1a; 重量价值…...

MyBatis学习笔记(三) —— MyBatis核心配置文件详解

3、核心配置文件详解 id是唯一标识&#xff0c;不能重复&#xff0c;但是在真正开发过程中&#xff0c;不可能一个项目中同时使用两个环境&#xff0c;肯定会使用其中的某一个&#xff0c;这时候它的default就比较重要了。 default是设置我们当前使用的默认环境的id <?x…...

使用GDAL进行坐标转换

1、地理坐标系与投影坐标系空间参考中主要包含大地水准面、地球椭球体、投影坐标系等几部分内容。地图投影就是把地球表面的任意点&#xff0c;利用一定数学法则&#xff0c;转换到地图平面上的理论和方法&#xff0c;一般有两种坐标系来进行表示&#xff0c;分别是地理坐标系和…...

日常编程中和日期相关的代码和bug

本文主要是Java中和日期时间相隔的几个常用代码函数代码&#xff0c;做了总结&#xff0c;希望在日常编码中&#xff0c;可以帮到大家。 1.计算闰年 记住一个短语&#xff0c;“四年一润&#xff0c;百年不闰&#xff0c;四百再润”&#xff0c;不管换啥语言&#xff0c;相信…...

ATT与Intel汇编语法区别

寄存器、变量&#xff08;常量&#xff09;与立即数 在Intel汇编中&#xff0c;无论是寄存器、变量&#xff08;常量&#xff09;还是立即数&#xff0c;都是直接使用的&#xff0c;例如下列例子中分别加载一个变量&#xff08;常量&#xff09;与立即数到寄存器中&#xff1a…...

Spring Cloud Alibaba全家桶(一)——Spring Cloud Alibaba介绍

前言 本文为 Spring Cloud Alibaba介绍 相关知识&#xff0c;下边将对微服务介绍&#xff08;包括&#xff1a;系统架构演变、微服务架构介绍、常见微服务架构&#xff09;&#xff0c;Spring Cloud Alibaba介绍&#xff08;包括&#xff1a;Spring Cloud Alibaba 的定位、Spri…...

2023年网红营销10大趋势解读:品牌出海必看

前不久influencermarketinghub发布了《2023年影响者营销基准报告》&#xff0c;报告总结了3500多家营销机构、品牌和其他相关专业人士对当前网红营销现状的看法&#xff0c;以及预测了未来网红营销的一个发展趋势。本期Nox聚星就带领大家详细解读关于2023年网红营销的10大趋势。…...

Java学习笔记 --- 正则表达式

一、体验正则表达式 package com.javase.regexp;import java.util.regex.Matcher; import java.util.regex.Pattern;/*** 体验正则表达式&#xff0c;给文本处理带来哪些便利*/ public class Regexp_ {public static void main(String[] args) {//假设&#xff0c;编写了爬虫&…...

【基础算法】字符串哈希

&#x1f339;作者:云小逸 &#x1f4dd;个人主页:云小逸的主页 &#x1f4dd;Github:云小逸的Github &#x1f91f;motto:要敢于一个人默默的面对自己&#xff0c;强大自己才是核心。不要等到什么都没有了&#xff0c;才下定决心去做。种一颗树&#xff0c;最好的时间是十年前…...

unity 多个模型或物体无限循环拖拽 类似无限列表循环

using System.Collections; using System.Collections.Generic; using UnityEngine; public class ModelAnimal : MonoBehaviour { //需滑动的物体 public GameObject m_objA; //音乐 public GameObject m_objB; //电话 public GameObject m_objC; //导航 public GameObject m…...

GroupDocs.Merger for Java

GroupDocs.Merger for Java GroupDocs.Merger for Java是一个文档操作API&#xff0c;可帮助您合并、拆分、交换或删除文档页面。API通过启用或禁用密码提供保护&#xff0c;并允许开发人员加入PDF、Microsoft Word、Excel和Powerpoint文档。 支持的文件格式 Microsoft Office格…...

04--WXML

1、什么是WXML什么是Wxml呢&#xff1f;我们首先要介绍一下Html&#xff0c;Html的全称为HyperTextMarkup Language&#xff0c;翻译过来就是超文本标记语言&#xff0c;这种语言目前已经普遍用于前端开发&#xff0c;而wxml正是从html演变而来&#xff0c;它基于微信这个平台&…...

一篇五分生信临床模型预测文章代码复现——FIgure 9.列线图构建,ROC分析,DCA分析 (五)

之前讲过临床模型预测的专栏,但那只是基础版本,下面我们以自噬相关基因为例子,模仿一篇五分文章,将图和代码复现出来,学会本专栏课程,可以具备发一篇五分左右文章的水平: 本专栏目录如下: Figure 1:差异表达基因及预后基因筛选(图片仅供参考) Figure 2. 生存分析,…...

每月一书(202302)《狂飙》

文章目录剧情内容观看收获正菜很硬配菜很足食物还有喻义又到了每月一书的时间&#xff0c;本月没有阅读书籍&#xff0c;不过看了一部叫《狂飙》的电视剧&#xff0c;因为该电视剧热度高&#xff0c;所以我也凑个热闹。下面分享一下我看完后的体会。 剧情内容 这是一部扫黑和…...

wsl2 docker 安装

一. 更换镜像源 备份默认源&#xff1a; cp /etc/apt/sources.list /etc/apt/sourses.list.bak 编辑文件&#xff1a; vim /etc/apt/sources.list 删除原有内容并替换为&#xff1a; # 默认注释了源码镜像以提高 apt update 速度&#xff0c;如有需要可自行取消注释 deb …...

极光笔记 | 埋点体系建设与实施方法论

PART 01 前 言随着网络技术的发展&#xff0c;从粗犷型到精细化运营型&#xff0c;再到现在的数字化运营&#xff0c;数据变得越来越细分和重要&#xff0c;不仅可以进行策略调整&#xff0c;还可以实现自动化的精细化运营。而数据价值的起点就是埋点&#xff0c;只有合理地埋点…...

显卡怎么越来越贵?聊聊GPU算力背后那些事

老实说&#xff0c;我也难以确切记起&#xff0c;究竟是自哪一日起始&#xff0c;电脑显卡的价格便如同乘坐了火箭那般。 可能就连楼下从事修电脑工作的陈师傅都未曾想到&#xff0c;在过去几年的时候&#xff0c;还能够运用“甜品卡”这个词汇去夸赞一张显卡在性价比方面较高&…...

UVa 275 Expanding Fractions

题目分析 本题要求计算两个正整数的除法的小数展开形式&#xff0c;其中分子小于分母&#xff0c;分母小于 100010001000。输入以 0 0 结束。 对于每个分数&#xff0c;需要输出其小数部分&#xff08;从小数点开始&#xff09;&#xff0c;并且&#xff1a; 如果小数是有限的&…...

5大实用功能揭秘:Sabaki围棋软件如何成为棋手必备的分析神器

5大实用功能揭秘&#xff1a;Sabaki围棋软件如何成为棋手必备的分析神器 【免费下载链接】Sabaki An elegant Go board and SGF editor for a more civilized age. 项目地址: https://gitcode.com/gh_mirrors/sa/Sabaki Sabaki是一款免费开源的围棋软件&#xff0c;以其…...

Vitis 2021.2自定义IP从Platform到App的完整避坑指南:头文件、宏定义与QEMU报错一网打尽

Vitis 2021.2自定义IP全流程开发实战&#xff1a;从Platform构建到多核调试的深度解析 在FPGA开发领域&#xff0c;Xilinx的Vitis统一软件平台为开发者提供了从硬件设计到软件开发的完整工具链。然而&#xff0c;当涉及到自定义IP集成时&#xff0c;即使是经验丰富的工程师也常…...

DownKyi完整指南:三步掌握B站8K超高清视频下载

DownKyi完整指南&#xff1a;三步掌握B站8K超高清视频下载 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xff09;。…...

皮线、裸纤总是分不清?试试这个算法一键校准技巧

不知道你有没有经历过这种工地上的"崩溃瞬间"&#xff1a;大热天蹲在居民楼昏暗的楼道里&#xff0c;蚊子在耳边嗡嗡叫&#xff0c;你手里正拉着一根刚从住户门缝里拽出来的皮线光缆&#xff0c;准备跟分纤箱引出来的单模裸纤做熔接。结果放进机器&#xff0c;合上盖…...

1688代采系统开发避坑指南:经验之谈

做跨境代购系统三年了&#xff0c;技术栈换过一次。今天把当初的技术选型过程和踩坑经验整理出来。多页面架构&#xff08;MPA&#xff09;的选择&#xff1a;没有用 React/Vue SPA 做租户端前台的首页和商品页&#xff0c;而是传统的多页面&#xff08;HTML JS jQuery&#…...

Navicat Premium连不上SQL Server?别慌,先检查这两个最容易忽略的配置(附驱动安装)

Navicat Premium连接SQL Server的实战排错指南&#xff1a;从报错到畅通的完整解决方案 第一次用Navicat Premium连接SQL Server数据库时&#xff0c;那种期待又忐忑的心情我太熟悉了。明明按照教程一步步填写了IP、端口、用户名和密码&#xff0c;点击"测试连接"后却…...

避坑指南:在STM32F407上移植QRcode库生成二维码,这些内存和显示细节要注意

STM32F407二维码生成实战&#xff1a;内存优化与显示调校的避坑法则 在嵌入式设备上实现二维码生成功能&#xff0c;看似简单的需求背后却暗藏玄机。当开发者兴冲冲地将开源QRcode库移植到STM32F407平台时&#xff0c;往往会遭遇一系列"意外"&#xff1a;内存突然耗尽…...

GoQt实战教程:构建你的第一个跨平台桌面应用

GoQt实战教程&#xff1a;构建你的第一个跨平台桌面应用 【免费下载链接】goqt Golang bindings to the Qt cross-platform application framework. 项目地址: https://gitcode.com/gh_mirrors/go/goqt 想要用Golang开发跨平台桌面应用吗&#xff1f;GoQt是你的终极解决…...