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

【leetcode】02.07. 链表相交

链表相交

    • 题目
    • 代码
      • 1. 计算两个链表的长度
      • 2. 双指针

题目

02.07. 链表相交

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

图示两个链表在节点 c1 开始相交:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

代码

1. 计算两个链表的长度

思路: 获取两个链表的长度,然后根据将两个链表的开始节点从同一长度(相对于后面相等)开始

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = Noneclass Solution(object):def getIntersectionNode(self, headA, headB):""":type head1, head1: ListNode:rtype: ListNode"""# 计算两个链表的长度,然后从后面的相同长度开始lenA = 0lenB = 0cur = headAwhile cur:cur = cur.nextlenA += 1cur = headBwhile cur:cur = cur.nextlenB += 1curA = headAcurB = headB# 让长链表的指针先走 |lenA - lenB| 步if lenA > lenB:for i in range(lenA - lenB):curA = curA.nextelse:for i in range(lenB - lenA):curB = curB.nextwhile curA:if curA == curB:return curAcurA = curA.nextcurB = curB.nextreturn None

2. 双指针

思路: 根据快慢法则,走的快的一定会追上走得慢的。
在这道题里,有的链表短,他走完了就去走另一条链表,我们可以理解为走的快的指针。

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = Noneclass Solution(object):def getIntersectionNode(self, headA, headB):""":type head1, head1: ListNode:rtype: ListNode"""# 双指针ta, tb = headA, headBwhile ta != tb:ta = ta.next if ta else headBtb = tb.next if tb else headAreturn tb

代码随想录:链接

http://www.dtcms.com/a/223382.html

相关文章:

  • 什么是AI Agent?大白话新手教学
  • Python基本运算符
  • Java异常与错误:核心区别深度解析
  • Baklib内容中台AI赋能智能服务升级
  • 【论文阅读】DanceGRPO: Unleashing GRPO on Visual Generation
  • 基于VU37P的高性能采集板卡
  • Vue3中Element-Plus中el-input及el-select 边框样式
  • 从equals思考对“正念”的认知
  • 基于SpringBoot的在线拍卖系统计与实现(源码+文档+部署讲解)
  • 深入解析 Redis Cluster 架构与实现(一)
  • RSTP协议:秒级收敛解析
  • RedisTemplate查询不到redis中的数据问题(序列化)
  • 人工智能时代Agent与MCP区别联系
  • 企业级Spring MVC高级主题与实用技术讲解
  • Java Web 开发详细流程
  • 大模型-attention汇总解析之-NSA
  • pikachu通关教程-RCE
  • Sums of Sliding Window Maximum_abc407F分析与解答
  • 001在线拍卖系统技术揭秘:构建高效交互的竞拍平台
  • 【吾爱】逆向实战crackme160学习记录(一)
  • 【AI赋能,视界升级】智微智能S134 AI OPS,重构智慧大屏未来
  • 晨控CK-UR08与欧姆龙PLC配置Ethernet/IP通讯连接操作手册
  • TDengine 运维——巡检工具(定期检查)
  • 裂缝仪在线监测装置:工程安全领域的“实时守卫者”
  • 【Git】
  • 白皮精读:214页数据安全治理白皮书6.0【附全文阅读】
  • 005学生心理咨询评估系统技术解析:搭建科学心理评估平台
  • 全面预算编制
  • 分库分表后的 ID 生成方案
  • 国标GB28181设备管理软件EasyGBS实现生产全流程可视化监控与精细化管理