《剑指offer》两个链表的第一个公共结点

【 声明:版权所有,转载请标明出处,请勿用于商业用途。 联系信箱:libin493073668@sina.com】

题目链接:?rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

题目描述输入两个链表,找出它们的第一个公共结点。思路先求出两个链表的长度,然后使得长链表的指针往前走,直到他们长度相等,,然后两个指针一起走,直到到达公共结点。

/*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==nullptr || pHead2==nullptr) return nullptr;int len1 = 0;int len2 = 0;ListNode *ptr1 = pHead1;ListNode *ptr2 = pHead2;while(ptr1){ptr1 = ptr1->next;len1++;}while(ptr2){ptr2 = ptr2->next;len2++;}ptr1 = pHead1;ptr2 = pHead2;if(len1>len2){int cnt = len1-len2;while(cnt–){ptr1 = ptr1->next;}}if(len1<len2){int cnt = len2-len1;while(cnt–){ptr2 = ptr2->next;}}while(ptr1!=ptr2){ptr1 = ptr1->next;ptr2 = ptr2->next;}return ptr1;}};

版权声明:本文为博主原创文章,如果转载,请注明出处

泪,一种痛苦的雨滴,不知从什么时候开始已在我的世界下个不停。

《剑指offer》两个链表的第一个公共结点

相关文章:

你感兴趣的文章:

标签云: