leetcode-160. 相交链表

leetcode-160. 相交链表

题目
leetcode-160. 相交链表_第1张图片

代码

#include 
#include 
using namespace std;

typedef struct ListNode{
	int val;
	ListNode *next;
}ListNode,*LinkList;

ListNode* create(LinkList &h,int n){
	h=new ListNode;
	h->next=NULL;
	ListNode *r=h;
	for(int i=0;i<n;i++){
		ListNode *p=new ListNode;
		cin>>p->val;
		p->next=NULL;
		r->next=p;
		r=p;
	}
	return h->next;
}

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

int main(){
	ListNode *res;
	ListNode *headA,*headB;
	int m,n;
	cin>>m>>n;
	headA=create(headA,m);
	headB=create(headB,n);
	res=getIntersectionNode(headA,headB);
	while(res){
		cout<<res->val<<" ";
		res=res->next;
	}
	return 0;
}

你可能感兴趣的:(刷题,链表,leetcode)