一.题目描述
已知链表A的头节点指针headA, 链表B的头节点指针headB,两链表相交,求两链表交点对应的节点。
二.题目要求
1.如果两个链表没有交点,则返回NULL
2.在求交点的过程中,不可以破坏链表的结构或者修改链表的数据域
3.可以确保传入的链表A和链表B没有任何环
4.实现算法尽可能使时间复杂度为O(n), 空间复杂度为O(1)
三. 方案一:使用set求交集
1.遍历链表A,将A中节点对应的指针(地址),插入set
2.遍历链表B,将B中节点对应的指针(地址),在set中查找,发现在set中的第一个节点,即是两个链表的交点。
四.方案一的实现代码
#include<set>
#include<iostream>
using namespace std;
struct ListNode
{
int val;
ListNode * next;
ListNod