//如果两个链表长度相同,直接遍历即可;
//长度不同,如链表1长度len1,链表2长度为len2,len1>len2,如下所示p1节点从链表1的第len1-len2+1个节点,链表2从链表头开始遍历,此时两个链表遍历长度相等。
同时考虑没有公共节点的情况。
public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) { if(pHead1==null || pHead2== null) return null; ListNode l1 = pHead1; ListNode l2 = pHead2; while(l1!=l2){ l1 = l1.next; l2 = l2.next; if(l1==null && l2==null) return null;//同时注意在没有公共节点的时候,进行判别,否则出现死循环; if(l1==null){ l1 = pHead2; } if(l2==null){ l2 = pHead1; } } return l1; }