Leetcode 160. Intersection of Two Linked Lists | | Leetcode 160. Intersection of Two Linked Lists 文章作者:Tyan博客:noahsnail.com | CSDN | 简书 1. Description 2. Solution Version 1 123456789101112131415161718192021222324252627/** * 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) { unordered_map<ListNode*, ListNode*> m; ListNode* current = headA; while(current) { m[current] = current; current = current->next; } current = headB; while(current) { if(m.find(current) != m.end()) { return current; } current = current->next; } return nullptr; }}; Version 2 1234567891011121314151617181920212223242526272829/** * 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 || !headB) { return nullptr; } ListNode* pA = headA; ListNode* pB = headB; while(pA != pB) { pA = pA->next; pB = pB->next; if(!pA && pB) { pA = headB; } if(pA && !pB) { pB = headA; } } return pA?pA:nullptr; }}; Reference https://leetcode.com/problems/intersection-of-two-linked-lists/description/ 如果有收获,可以请我喝杯咖啡! 赏 微信打赏 支付宝打赏