LeetCode 热题100-22

server/2024/9/22 15:47:17/

相交链表

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

图示两个链表在节点 c1 开始相交

题目数据 保证 整个链式结构中不存在环。

注意,函数返回结果后,链表必须 保持其原始结构 。

自定义评测:

评测系统 的输入如下(你设计的程序 不适用 此输入):

  • intersectVal - 相交的起始节点的值。如果不存在相交节点,这一值为 0
  • listA - 第一个链表
  • listB - 第二个链表
  • skipA - 在 listA 中(从头节点开始)跳到交叉节点的节点数
  • skipB - 在 listB 中(从头节点开始)跳到交叉节点的节点数

评测系统将根据这些输入创建链式数据结构,并将两个头节点 headA 和 headB 传递给你的程序。如果程序能够正确返回相交节点,那么你的解决方案将被 视作正确答案 。
 

 这道题是简单题应该是因为时间复杂卡的不严,因为最能让人想到的就是两个for然后循环暴力出来,巧妙的是问题转化。其实这个问题转换成了两条路径长度不同,如何找到交点,a与b走两条不同长度的路,假设每次走一步,还想以o(n)的复杂度知道交点在哪?

        更多需要注意的是两条路是固定且未知的,既然存在不平等,那么a和b就走完两条路的总路程,就会相遇了!这也是这道题目的巧妙之处,很遗憾没想到 (⊙﹏⊙)

python"># Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = Noneclass Solution:def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> Optional[ListNode]:# nbaa = headAb = headB# 两条路不一样长,最后能够相交的方法就是大家换着走一遍就知道了while a!=b:a = a.next if a!=None else headBb = b.next if b!=None else headAif a == None:return Noneelse:return a


http://www.ppmy.cn/server/100849.html

相关文章

汽车电子中间件的关键技术

汽车电子中间件的关键技术 中间件架构设计分层架构与模块化设计优势劣势 服务导向架构(SOA)主要特点:SOA在汽车电子中的应用:优势:劣势: 通讯协议与数据传输传统协议(CAN、LIN)CAN&a…

408专业课复习-数据结构

1.具体衡量、比较算法优劣的指标主要有哪两个?什么是时间复杂度?什么是空间复杂度? 时间复杂度T(n):根据算法写成的程序在执行时耗费时间的长度。 这个长度往往也与输入数据的规模有关。时间复杂度过高的低效算法可能导致我们在…

Angular路由使用

Angular路由是Angular框架中一个非常重要的特性,开发者可以根据URL的不同来动态地加载和显示不同的组件,从而构建出单页面应用(SPA)。 以下是Angular路由使用的基本步骤和要点: 1. 安装和配置路由模块 首先&#xf…

无人机视角下的EasyCVR视频汇聚管理:构建全方位、智能化的AI视频监控网络

随着5G、AI、物联网(IoT)等技术的快速发展,万物互联的时代已经到来,视频技术作为信息传输和交互的重要手段,在多个领域展现出了巨大的应用潜力和价值。其中,EasyCVR视频汇聚平台与无人机结合的AI应用更是为…

Qgis 开发初级 《地图交互》

Qigs 添加数据的方式其实有两种,一种在非编辑模式下,一宗在编辑模式下,编辑模式下的数据操作是可以追溯的,可撤销,可恢复。编辑模式下的数据操作基本都是交互式操作,所以和事件是分不开的。qgis 的有些事件…

nginx 详解

1 nginx是什么 nginx是由俄罗斯人发明的一款高性能的web服务器,它同早期的Apache,IIS,Lighttpd等都具有web服务器的功能,能够发布网站代码等资源,为用户提供信息资讯。但是nginx的功能不单单只是做为web服务器&#x…

企业信息安全怎么保护?2024年最新十款文件加密软件排行榜

随着数字化转型的加速,企业面临的网络安全威胁日益复杂。确保企业信息安全,不仅关乎商业机密的保护,更是企业可持续发展的基石。在2024年,为了帮助企业有效应对数据泄露风险,我们特别整理了十款备受好评的文件加密软件…

MIT6.s081 2021 Lab Copy on-write

Implement copy-on write 背景 xv6 使用 fork() 系统调用创建子进程时,需要将父进程的地址空间进行 深拷贝 ,即将页表和实际物理空间同时进行拷贝,以实现父进程和子进程地址空间的独立性。但很多时候,如 shell 程序,…