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

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

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

/*
struct ListNode {
	int val;
	struct ListNode *next;
	ListNode(int x) :
			val(x), next(NULL) {
	}
};*/
class Solution {
public:
	int ListLen(ListNode* p) {
		int n=0;
		while(p) {
			p=p->next;
			n++;
		}
		return n;
	}
    ListNode* FindFirstCommonNode( ListNode* head1, ListNode* head2) {
		ListNode* p1=head1;
		ListNode* p2=head2;
		int len1=ListLen(p1);
		int len2=ListLen(p2);
		int gap=0;
		if(len1>len2) {
			gap = len1-len2;
			while(gap--) {
				p1=p1->next;
			}
		}else{
			gap = len2-len1;
			while(gap--) {
				p2=p2->next;
			}
		}
		while(p1 && p2) {
			if(p1->val == p2->val) return p1;
			p1=p1->next;
			p2=p2->next;
		}
		return nullptr;
    }
};

全部评论

相关推荐

点赞 评论 收藏
分享
04-30 21:35
已编辑
长安大学 C++
晓沐咕咕咕:评论区没被女朋友好好对待过的计小将可真多。觉得可惜可以理解,毕竟一线大厂sp。但是骂楼主糊涂的大可不必,说什么会被社会毒打更是丢人。女朋友体制内生活有保障,读研女朋友还供着,都准备订婚了人家两情相悦,二线本地以后两口子日子美滋滋,哪轮到你一个一线城市房子都买不起的996清高计小将在这说人家傻😅
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务