算法 两个链表的第一个公共结点 求解代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) { // 初始化两个临时指针,分别指向两个链表的头节点 ListNode temp1 = pHead1; ListNode temp2 = pHead2; // 只要两个指针不指向同一个节点,就继续遍历 while (temp1 != temp2) { // - temp1遍历完自己的链表(为null),就切换到链表2的头节点继续遍历 // - 否则,temp1正常后移 temp1 = temp1 == null ? pHead2 : temp1.next; // - temp2遍历完自己的链表(为null),就切换到链表1的头节点继续遍历 // - 否则,temp2正常后移 temp2 = temp2 == null ? pHead1 : temp2.next; } // temp1和temp2要么指向第一个公共节点,要么都为null(无公共节点) return temp1; }