LeetCode 156-160

2020-11-11  本文已影响0人  1nvad3r

160. 相交链表

先计算两个链表的长度,然后再根据长度使两个链表从相等的长度开始一起出发。直到走到两个结点相同时返回。如果没有相同的结点,那么最后会走到null返回。

public class Solution {
    public int getLength(ListNode node) {
        int length = 0;
        while (node != null) {
            length++;
            node = node.next;
        }
        return length;
    }

    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        int lenA = getLength(headA), lenB = getLength(headB);
        while (lenA != lenB) {
            if (lenA > lenB) {
                headA = headA.next;
                lenA--;
            } else {
                headB = headB.next;
                lenB--;
            }
        }
        while (headA != headB) {
            headA = headA.next;
            headB = headB.next;
        }
        return headA;
    }
}
上一篇下一篇

猜你喜欢

热点阅读