题干
输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)
思路
对于给定的两个链表而言,当其在链表值相等时表示是公共的节点,所以在其不相等时候,进行循环的判断,一直找到相等的为止。
代码
public class Solution {
public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
if(pHead1==null || pHead2==null) return null;
ListNode p=pHead1;
ListNode q=pHead2;
while(p!=q)
{
p=(p==null? pHead2:p.next);
q=(q==null? pHead1:q.next);
}
return p;
}
}