title 网站建设公司实力,建站之星演示,桂林北站到象鼻山景区怎么坐车,河南郑州天气预报15天牛客题霸 [两个链表的第一个公共结点] C题解/答案
题目描述
输入两个链表#xff0c;找出它们的第一个公共结点。#xff08;注意因为传入数据是链表#xff0c;所以错误测试数据的提示是用其他方式显示的#xff0c;保证传入数据是正确的#xff09;
题解#xff1a;…牛客题霸 [两个链表的第一个公共结点] C题解/答案
题目描述
输入两个链表找出它们的第一个公共结点。注意因为传入数据是链表所以错误测试数据的提示是用其他方式显示的保证传入数据是正确的
题解
可以理解成两个数组找第一个公共节点 就是两个for循环从第一个数组的第一位开始与第二个数组的第一位开始判断是否相同然后比第二个数组的第二位一直这样进行 但这里是链表所以一开始没跑完第二个链表就要重新回到起点 即list2 pHead2; 详细看代码
代码
/*
struct ListNode {int val;struct ListNode *next;ListNode(int x) :val(x), next(NULL) {}
};*/
class Solution {
public:ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) {if(!pHead1 || !pHead2) return NULL;ListNode *list1,*list2;list1 pHead1;list2 pHead2;while(list1 ! NULL){list2 pHead2;while(list2 !NULL){if(list1 list2){return list1;break;}else{list2 list2-next;}}list1 list1-next;}return list1;}
};