链表(二)——链表相交点

2018-09-24  本文已影响0人  旺叔叔

LeetCode_160_IntersectionofTwoLinkedLists

题目分析:

求交点,不可以利用上题方法,先翻转两个链表,然后遍历直到分叉,因为链表无法指向两个子节点。
巧妙的方式,将a,b两链表首尾相连并遍历,则一定会在交点处相遇。

解法:

public static ListNode getIntersectionNode(ListNode headA, ListNode headB) {
    if (headA == null || headB == null) return null;
    ListNode a = headA, b = headB;
    while (a != b) {
        a = (a != null) ? a.next : headB;
        b = (b != null) ? b.next : headA;
    }
    return a;
}
上一篇 下一篇

猜你喜欢

热点阅读