[数据结构与算法]两个链表的第一个公共节点

    科技2024-11-07  8

    输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)

    function FindFirstCommonNode(pHead1, pHead2) { let p1 = pHead1 let p2 = pHead2 while (p1 != p2) { // 两个指针都走完两条链表公共节点前的部分 // 这样确保了达到公共节点的时候,两个指针走了相同的步数 // 且一个指针此时在p1上,一个在p2上 // 如果两个链表没有公共节点,则两个指针最终都会走到null,不满足p1!=p2跳出循环 p1 = p1 ? p1.next : pHead2 p2 = p2 ? p2.next : pHead1 } return p1 }
    Processed: 0.014, SQL: 8