160. 相交链表

119 阅读1分钟

//可以先遍历两个链表长度,然后从短的链表同时出发 //这个方法比较巧妙,A链表遍历完之后转向B链表的头部

public class Solution {
    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
         if (headA == null || headB == null) {
            return null;
        }
        ListNode pa = headA;
        ListNode pb = headB;
        while (pa != pb) {
            pa = pa.next;
            pb = pb.next;
            if (pa == null && pb == null) {
                return null;
            }
            if (pa == null) {
                pa = headB;
            }
            if (pb == null) {
                pb = headA;
            }
        }
        return pa;
    }
}