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"
相关推荐
2302_813806222 小时前
【嵌入式修炼:数据结构篇】——单向链表的排序
数据结构·链表·排序算法
2302_813806222 小时前
【嵌入式修炼:数据结构篇】——树和二叉树
数据结构
苦藤新鸡2 小时前
56.组合总数
数据结构·算法·leetcode
菜鸟233号2 小时前
力扣647 回文子串 java实现
java·数据结构·leetcode·动态规划
Charlie_lll2 小时前
力扣解题-[3379]转换数组
数据结构·后端·算法·leetcode
captain3763 小时前
Java队列(Queue)
算法·链表
TracyCoder1233 小时前
LeetCode Hot100(23/100)——142. 环形链表 II
算法·leetcode·链表
酉鬼女又兒4 小时前
27. 移除元素
数据结构·算法·排序算法
执着2594 小时前
力扣hot100 - 101、对称二叉树
数据结构·算法·leetcode