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

算法-链表篇06-链表相交

链表相交

力扣题目链接

题目描述

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。
在这里插入图片描述

解题思路

这道题我看全是用双指针和哈希方法完成的,所以发布一下我的栈方法。
先把链表存入两个栈中,依次拿出来进行比较,直到元素不相同或者栈为空,然后返回最后一个相同的结点,就是答案。

题解

#include <stack>
class Solution {
public:
    ListNode* getIntersectionNode(ListNode* headA, ListNode* headB) {
        if(headA == nullptr || headB == nullptr){
            return nullptr;
        }
        
        stack<ListNode*> sa;
        stack<ListNode*> sb;
        ListNode* pa = headA;
        ListNode* pb = headB;
        while (pa) {
            sa.push(pa);
            pa = pa->next;
        }

        while (pb) {
            sb.push(pb);
            pb = pb->next;
        }

        ListNode* ans = nullptr;
        while(!sa.empty() && !sb.empty() && sa.top() == sb.top()){
            ans = sa.top();
            sa.pop();
            sb.pop();
        }

        return ans;
    }
};

总结

这道题目的题干读完就感觉很像栈的特性,就直接用着写了,没想到力扣上还没有发现这种解法。

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

相关文章:

  • MaxKB本地部署celery_default is stopped
  • 【项目日记】高并发内存池--page cache
  • 05-服务保护和分布式事务(Sentinel、Seata)
  • 探索 Text-to-SQL 技术:从自然语言到数据库查询的桥梁
  • 2025年关于css面试题及其答案解析
  • GRN前沿:DGCGRN:基于有向图卷积网络的基因调控网络推理
  • 云夹书签:让阅读跨越时空
  • 【Elasticsearch】标准化器(Normalizers)
  • 常用 CNN 深度学习框架 backbone 标准代码
  • C++----多态
  • 单元测试、系统测试、集成测试知识详解
  • 神经网络常见激活函数 8-SELU函数
  • 【MyBatis】预编译SQL与即时SQL
  • 数据结构:串
  • 2025年如何选择合适的微服务工具
  • datasets: PyTorch version 2.5.1+cu124 available 这句话是什么意思
  • DeepSeek 遭 DDoS 攻击背后:DDoS 攻击的 “千层套路” 与安全防御 “金钟罩”_deepseek ddos
  • EMC测试中的环境噪声控制:为什么6dB是关键?
  • HCIA项目实践--动态路由的相关知识
  • 使用python脚本提取html网页上的所有文本信息
  • 【Linux】nmcli命令详解
  • 如何提升插屏广告在游戏APP广告变现表现,增加变现收益
  • 上位机知识篇---SSHSCP密钥与密钥对
  • LVS集群模式
  • linux笔记3----防火墙(ubuntu)
  • IoTDB 集群节点 IP 改变,如何更新集群
  • 更加通用的Hexo多端部署原理及实现,适用于各种系统之间
  • Apollo 9.0 速度动态规划决策算法 – path time heuristic optimizer
  • 关于 IoT DC3 中设备(Device)的理解
  • OpenCL实现深度图生成点云功能