Skip to main content

160. Intersection of Two Linked Lists

分析

在这题目中 倾向于用讲node与后面的线看作是一个单位
1 -> 2 -> 3
1 -> 是基本的单位

但在 876. Middle of the Linked List 中 是 -> 1

题解

function getIntersectionNode(headA: ListNode | null, headB: ListNode | null): ListNode | null {
let p1 = headA, p2 = headB
let flag1 = false, flag2 = false
while (p1 && p2) {
if (p1 === p2) {
return p1
}

if (p1.next) {
p1 = p1.next
} else if (!flag1) {
p1 = headB
flag1 = true
} else {
break
}
if (p2.next) {
p2 = p2.next
} else if (!flag2) {
p2 = headA
flag2 = true
} else {
break
}
}

return null
};
function getIntersectionNode(headA: ListNode | null, headB: ListNode | null): ListNode | null {
let p1 = headA, p2 = headB
while (p1 !== p2) {
p1 = p1 ? p1.next : headB
p2 = p2 ? p2.next : headA
}

return p1
};