-
题目
输入两个链表,找出它们的第一个公共结点。 -
code
只考虑了两个无环链表的相交情况/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2){ if(pHead1 == NULL || pHead2 == NULL) return NULL; ListNode* p1 = pHead1; ListNode* p2 = pHead2; int len = 0; while(p1){ len++; p1 = p1->next; } while(p2){ len--; p2 = p2->next; } if(p1 != p2){ return NULL; } p1 = len > 0 ? pHead1 : pHead2; p2 = (p1 == pHead1) ? pHead2 : pHead1; len = abs(len); while(len != 0){ len--; p1 = p1->next; } while(p1 != p2){ p1 = p1->next; p2 = p2->next; } return p1; } };
【剑指Offer】两个链表的第一个公共结点
最新推荐文章于 2022-02-28 23:57:49 发布