题目描述:
输入两个链表,找出它们的第一个公共节点。
如下面的两个链表:
在节点 c1 开始相交。
题源:https://leetcode-cn.com/problems/liang-ge-lian-biao-de-di-yi-ge-gong-gong-jie-dian-lcof/
代码:
/** * 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* t=headA; int la=0; while(t!=NULL) { la++; t=t->next; } int lb=0; t=headB; while(t!=NULL) { lb++; t=t->next; } if(la<lb) {swap(headA,headB); swap(la,lb);} for(int i=0;i<la-lb;i++) headA=headA->next; while(headA!=NULL) { if (headA==headB) break; headA=headA->next; headB=headB->next; } return headA; } };