校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 数据结构 > 单向链表
题目

判断两个链表的相交结点

解答

因为两个链表的长度不同,所以我们先获取两个链表的长度,让长链表的引用先走其插值的长度。
随后,让两个引用同时走,若两个引用相等了,那么说明此时该引用所指向的节点即为相交结点。
代码如下:

public static <T> SingleLinkedList<T>.Node<T> commonNode2(SingleLinkedList<T> list1,
SingleLinkedList<T> list2){
if(list1.head == null||list2.head == null) return null;

//计算两个链表的差值
int length1 = getlength(list1.head);
int length2 = getlength(list2.head);

int lengthDif = Math.abs(length1-length2);

SingleLinkedList<T>.Node<T> longHead =list1.head;
SingleLinkedList<T>.Node<T> shortHead =list2.head;

//长链表先走其差值
if(length1<length2){
longHead = list1.head;
shortHead = list2.head;
}

for(int i=0;i<lengthDif;i++){
longHead = longHead.next;
}

//长链表和短链表开始同时走,当两个引用的相等的时候,此时该引用所指向的节点就是相交结点
while (shortHead!=longHead){
longHead = longHead.next;
shortHead = shortHead.next;
}
return longHead;
}


C 2条回复 评论
杜行知

请问测开均价是多少k呢?

发表于 2023-07-20 21:00:00
0 0
实名者

修路征用了我依法承包的2亩多基本农田、青苗、道边大批生态树株等至今皆分文不补、不赔、不安置恶意“捏造补偿款”中饱私囊危害后果极其严重,人民群众反映强烈。















《征地伪造补偿黑账肆虐动特警》(搜狗百度)等曝光后,他们阻挡正义发声。迄今104日,山西原平市皆拒不回应一直挑战14亿国人底线!现实名检举,请关注转载!

发表于 2022-10-05 07:39:56
0 0