Skip to content

相交链表

LeetCode-160

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null

js
var getIntersectionNode = function(headA, headB) {
  // O(n²)
  // while(headA) {
  //   let tempB = headB
  //   while(tempB) {
  //       if(tempB === headA) return tempB
  //       tempB = tempB.next
  //   }
  //   headA = headA.next
  // }
  // return null

  // O(n)
  let set = new Set()
  while(headA) {
    set.add(headA)
    headA = headA.next
  }
  while(headB) {
    if(set.has(headB)) return headB
    headB = headB.next
  }
  return null
}