题解 | #两个链表的第一个公共结点#

两个链表的第一个公共结点

https://www.nowcoder.com/practice/6ab1d9a29e88450685099d45c9e31e46

/*
看大家写的题解都是用双指针的,我写个哈希表的,FirstList上的节点全部标记,SecondeList第一个遇到的重复标记的节点就是公共节点。
算是用空间换时间,毕竟哈希表查询是常数级,倒也不慢。
*/
#include <unordered_set>
class Solution {
public:
    ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) {
        unordered_set<ListNode*> help;
		while(pHead1 != NULL){
			help.insert(pHead1);
			pHead1 = pHead1->next;
		}
		while(pHead2 != NULL){
			if(help.count(pHead2) == 0)
				pHead2 = pHead2->next;
			else
			 	return pHead2;
		}
		return NULL;
    }
};

#23届找工作求助阵地#
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务