JAVA解法
public class Solution {
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
// 你们出生自两个不同的家庭
if (headA == null || headB == null) {
return null;
}
// 你的人生与她的人生,俩不同的人生
ListNode you = headA, she = headB;
// 若是有缘,你们早晚会相遇
while (you != she) {
// 当你走完没有她的路时,开始走她走过的路
you = you == null ? headB : you.next;
// 当她走完没有你的路时,开始走你走过的路
she = she == null ? headA : she.next;
}
/**
如果你们彼此真心,请携手一起走完剩下的旅程:
【将下面这个 while 块取消注释】
一路上,时而你踩着她的影子,时而她踩着你的影子。
渐渐地,你变成了她,她也变成了你。
*/
//--------------------------------------------------
// 这个循环的唯一终止条件是人生终点...
/*
while (she.next != null) {
you = she.next;
she = you.next;
}
*/
//--------------------------------------------------
// 你和她相遇的那难忘一刻
return you;
}
}
leetcode原题: 160. 相交链表
题解分析
愿有情人终成眷属!
评论区