public class Solution {
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
int len1 = length(headA);
int len2 = length(headB);
while(len1!=len2){
if(len1>len2){
headA = headA.next;
len1–;
}
if(len1<len2){
headB = headB.next;
len2–;
}
}
while(headA!=headB){
headA = headA.next;
headB = headB.next;
}
if(headB == null){
return null;
}
return headB;
}
private int length(ListNode node){
int count = 0;
while(node!=null){
count++;
node = node.next;
}
return count;
}
}
给定两个(单向)链表,判定它们是否相交并返回交点。请注意相交的定义基于节点的引用,而不是基于节点的值。换句话说,如果一个链表的第k个节点与另一个链表的第j个节点是同一节点(引用完全相同),则这两个链表
最新推荐文章于 2021-05-27 23:33:25 发布