牛客题霸 [两个链表的第一个公共结点] C++题解/答案
生活随笔
收集整理的這篇文章主要介紹了
牛客题霸 [两个链表的第一个公共结点] C++题解/答案
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
牛客題霸 [兩個(gè)鏈表的第一個(gè)公共結(jié)點(diǎn)] C++題解/答案
題目描述
輸入兩個(gè)鏈表,找出它們的第一個(gè)公共結(jié)點(diǎn)。(注意因?yàn)閭魅霐?shù)據(jù)是鏈表,所以錯(cuò)誤測試數(shù)據(jù)的提示是用其他方式顯示的,保證傳入數(shù)據(jù)是正確的)
題解:
可以理解成兩個(gè)數(shù)組找第一個(gè)公共節(jié)點(diǎn)
就是兩個(gè)for循環(huán),從第一個(gè)數(shù)組的第一位開始與第二個(gè)數(shù)組的第一位開始判斷是否相同,然后比第二個(gè)數(shù)組的第二位,一直這樣進(jìn)行
但這里是鏈表,所以一開始沒跑完第二個(gè)鏈表,就要重新回到起點(diǎn)
即list2 = pHead2;
詳細(xì)看代碼
代碼:
/* 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 || !pHead2) return NULL;ListNode *list1,*list2;list1 = pHead1;list2 = pHead2;while(list1 != NULL){list2 = pHead2;while(list2 !=NULL){if(list1 == list2){return list1;break;}else{list2 = list2->next;}}list1 = list1->next;}return list1;} };總結(jié)
以上是生活随笔為你收集整理的牛客题霸 [两个链表的第一个公共结点] C++题解/答案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛客题霸 [ 实现二叉树先序,中序和后序
- 下一篇: 小牛创始人李一男的自游家“复活”更进一步