letecode [160] - Intersection of Two Linked Lists
生活随笔
收集整理的這篇文章主要介紹了
letecode [160] - Intersection of Two Linked Lists
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?Write a program to find the node at which the intersection of two singly linked lists begins.
題目大意:
? 給定兩個鏈表,找到它們的第一個公共節點并返回。
理? 解:
? 從第一個公共節點開始,兩鏈表后面的節點都是公共的。
計算兩個鏈表的長度,從長度相同的節點開始往后遍歷,并比較p==q,若相等,則當前節點為第一個公共節點;不等則繼續往后找。
代 碼 C++:
/*** 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) {if(headA==NULL || headB==NULL) return NULL;int lenA=0,lenB=0;ListNode *p = headA;ListNode *q = headB;while(p!=NULL){lenA++;p = p->next;}while(q!=NULL){lenB++;q = q->next;}p = headA;q = headB;while(lenA>lenB){p = p->next;lenA--;}while(lenA<lenB){q = q->next;lenB--;}while(p!=NULL){if(p==q){return p;}p = p->next;q = q->next;}return NULL;} };運行結果:
? 執行用時 :72 ms, 在所有C++提交中擊敗了84.85%的用戶
內存消耗 :16.9 MB, 在所有C++提交中擊敗了11.06%的用戶轉載于:https://www.cnblogs.com/lpomeloz/p/11002364.html
總結
以上是生活随笔為你收集整理的letecode [160] - Intersection of Two Linked Lists的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DTD
- 下一篇: 框架前期准备篇之AutoFac常见用法总