当前位置: 首页 > 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;
    }
};

总结

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

相关文章:

  • 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网页上的所有文本信息
  • 央行:中国政府债务扩张仍有可持续性
  • 央行:当前我国债券市场定价效率、机构债券投资交易和风险管理能力仍有待提升
  • 【社论】职业上新,勇于“尝新”
  • 罗氏制药全新生物制药生产基地投资项目在沪启动:预计投资20.4亿元,2031年投产
  • AMD:预计美国芯片出口管制将对全年营收造成15亿美元损失
  • 外交部:印巴都表示不希望局势升级,望双方都能保持冷静克制