相交链表——力扣160

题目描述

相交链表——力扣160_第1张图片
相交链表——力扣160_第2张图片
相交链表——力扣160_第3张图片
相交链表——力扣160_第4张图片

法一)哈希表

相交链表——力扣160_第5张图片

class Solution{
public:
	ListNode* getIntersectionNode (ListNode* headA, ListNode* headB){
		unordered_set<ListNode*> st;
		ListNode* temp = headA;
		while(temp){
			st.insert(temp);
			temp = temp->next;
		}
		temp = headB;
		while(temp){
			if(st.count(temp)){
				return temp;
			}
			temp = temp->next;
		}
		return NULL;
	}
}; 

相交链表——力扣160_第6张图片

法二)双指针

相交链表——力扣160_第7张图片
相交链表——力扣160_第8张图片

ListNode* getIntersectionNode (ListNode* headA, ListNode* headB){
	if(headA == NULL || headB==NULL){
		return NULL; 
	}
	ListNode* pa, pb = headA, headB;
	while(pa!=pb){
		pa = pa==NULL ? headB : pa->next;
		pb = pb==NULL ? headA : pb->next;
	}
	return pa;
}

相交链表——力扣160_第9张图片

你可能感兴趣的:(算法刷题笔记,链表,leetcode,数据结构,c++,算法,职场和发展)