160. 相交链表/c++

160. 相交链表 - 力扣(LeetCode)

题解:

cpp 复制代码
class Solution {
public:
    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
        unordered_set<ListNode*> visited; // ✅ 存指针
        
        // 遍历链表 A,记录所有节点地址
        while (headA) {
            visited.insert(headA); // ✅ 插入指针
            headA = headA->next;
        }
        
        // 遍历链表 B,检查是否有节点已在 A 中出现
        while (headB) {
            if (visited.find(headB) != visited.end()) { // ✅ 查找指针
                return headB; // 找到交点
            }
            headB = headB->next;
        }
        
        return nullptr; // C++ 推荐用 nullptr 而非 NULL
    }
};

注意

cpp 复制代码
unordered_set<ListNode> unset;  // ❌ 编译错误!
unordered_set<ListNode*> unset;  // ✅ 存储指针
  • ListNode 是自定义结构体,没有默认的哈希函数和相等比较函数
  • C++ 标准库无法对 ListNode 对象进行哈希或比较
  • 会报你之前看到的错误:"call to implicitly-deleted default constructor"
相关推荐
我变成萤火虫2 小时前
河南萌新联赛2026第(三)场:郑州轻工业大学
数据结构·c++·算法·贪心算法·stl·深度优先·哈希算法
白狐_7982 小时前
408数据结构第7章:B树①——基础概念与结构
数据结构·b树
Suxing93 小时前
C语言基础分享:从“租房”到“拆迁”,C语言动态内存管理
java·数据结构·算法
LuminousCPP3 小时前
单链表专题(四)-刷题复盘篇-LeetCode 138 随机链表复制|原地拷贝法突破复杂指针操作
数据结构·笔记·算法·leetcode·链表
逆境不可逃3 小时前
【LeetCode 912】排序数组——随机化快速排序详解
数据结构·算法·排序算法
c238564 小时前
《算法武林谱:四大排序神功与二分寻宝术全解》
数据结构·算法·排序算法
OpenApi.cc4 小时前
MoCode — AI Agent Server (Docker) + macOS Desktop Client(开源项目)
数据结构·人工智能·深度学习·神经网络
Mem0rin4 小时前
二分查找:左右边界
数据结构·算法
lazily-c4 小时前
数据结构模板
数据结构
祖力5512 小时前
数据结构的基本概念与单向链表(链表数据类型构造、创建、头插、尾插、头删、尾删)
数据结构·链表