Intersection of Two Linked Lists
原题链接Intersection of Two Linked Lists
两个链表,从某个节点开始相交,找到相交节点
方法很多,简单列举一下
- 将其中一个链表的头尾相连,问题转化为求环入口节点
- 用两个栈分别记录两个链表的节点,再弹出,找到最后一个相等的节点
- 将长的链表移动长度差的距离,然后同时移动两个链表,找到第一个相等的节点
采用第三种方法,代码如下
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode *getIntersectionNode(ListNode *headA,