两链表的公共节点 发表于 2019-05-02 | 分类于 剑指offer 题目输入两个链表,找出它们的第一个公共结点。 思路快慢指针 代码1234567891011121314151617181920212223242526272829303132function FindFirstCommonNode(pHead1, pHead2) { const len1 = getLinkLength(pHead1), len2 = getLinkLength(pHead2); let pLong = pHead1, pShort = pHead2, lenGap = len1 - len2; if (len1 < len2) { pLong = pHead2; pShort = pHead1; lenGap = len2 - len1; } while (lenGap--) { pLong = pLong.next; } while (pLong !== null) { // pLong,pShort一起跑 if (pLong.val === pShort.val) { return pLong; } pLong = pLong.next; pShort = pShort.next; } return null;}function getLinkLength(pHead) { let length = 0; while (pHead !== null) { pHead = pHead.next; length++; } return length;}