leetcode-160. 相交链表

2022-06-17 10:57:04 浏览数 (1)

JAVA解法

代码语言:javascript复制
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. 相交链表

题解分析

愿有情人终成眷属!

0 人点赞