输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)
两个链表走到尽头头走队方的路会再第二次走的时候会和,为了更好的让大家理解可以说明下,第一次短链表少走的会在第二次走的时候补上.
加上A链表B链表回合于黑疙瘩的地方,那么两者都走8步后会相遇.
public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
ListNode pHead1Index=pHead1;
ListNode pHead2Index=pHead2;
while (pHead1Index!=pHead2Index){
pHead1Index=pHead1Index==null?pHead2:pHead1Index.next;
pHead2Index=pHead2Index==null?pHead1:pHead2Index.next;
}
return pHead1Index;
}