牛客题霸 [两个链表的第一个公共结点] C++题解/答案
生活随笔
收集整理的這篇文章主要介紹了
牛客题霸 [两个链表的第一个公共结点] C++题解/答案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
牛客題霸 [兩個鏈表的第一個公共結點] C++題解/答案
題目描述
輸入兩個鏈表,找出它們的第一個公共結點。(注意因為傳入數據是鏈表,所以錯誤測試數據的提示是用其他方式顯示的,保證傳入數據是正確的)
題解:
可以理解成兩個數組找第一個公共節點
就是兩個for循環,從第一個數組的第一位開始與第二個數組的第一位開始判斷是否相同,然后比第二個數組的第二位,一直這樣進行
但這里是鏈表,所以一開始沒跑完第二個鏈表,就要重新回到起點
即list2 = pHead2;
詳細看代碼
代碼:
/* 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;} };總結
以上是生活随笔為你收集整理的牛客题霸 [两个链表的第一个公共结点] C++题解/答案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛客题霸 [ 实现二叉树先序,中序和后序
- 下一篇: 牛客题霸 [括号序列] C++题解/答案