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;
}
}
网友评论