相交链表
这种题目都可以用哈希表来方便解决,但追求常量空间解决方案时则难度加倍。
双指针
这个很有意思,交换式:a + c + b === b + c + a
function getIntersectionNode(headA: ListNode | null, headB: ListNode | null): ListNode | null {
if (headA === null || headB === null) {
return null
}
let pa: ListNode | null = headA, pb: ListNode | null = headB
while (pa !== pb) {
pa = pa === null ? headB : pa.next
pb = pb === null ? headA : pb.next
}
return pa
}