All files / leetCode 0160.ts

100% Statements 14/14
100% Branches 13/13
100% Functions 1/1
100% Lines 14/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27            8x 3x   5x 5x   5x 20x 20x   20x 4x 16x 3x 16x 3x     1x    
import type { ListNode } from './List'
 
export default function getIntersectionNode(
  headA: ListNode<number> | null,
  headB: ListNode<number> | null,
): ListNode<number> | null {
  if (headA === null || headB === null)
    return null
 
  let p1: ListNode<number> | null = headA
  let p2: ListNode<number> | null = headB
 
  while (p1 !== null && p2 !== null && p1 !== p2) {
    p1 = p1.next
    p2 = p2.next
 
    if (p1 === p2)
      return p1
    if (p1 === null)
      p1 = headB
    if (p2 === null)
      p2 = headA
  }
 
  return p1
}