题目描述:输入两个链表,找出它们的第一个公共节点。![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6335c89d1e0ceaaef187ee53ab8f010a.png)
解题思路:一直走一直走直到两个节点相等不断循环遍历两个链表终有一次会相遇。
代码:
/**
* 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, ListNode *headB) {
ListNode*node1=headA;
ListNode*node2=headB;
while(node1!=node2){
node1 = node1 != NULL ? node1->next:headB;
node2 = node2 != NULL ? node2->next:headA;
}
return node1;
}
};