2023华为面试手撕真题【单链表相交】

题目来自于评论区老铁的反馈,感谢!

判断两个单链表是否相交

        题目相当经典了,感觉稍微刷过点题目的都应该知道这个题目,好像《剑指offer》中就有这个题目。但是咱们老题新说,不能眼高手低,扎实的写出正确代码才行!

        如果两个单链表有共同的节点,那么从第一个共同节点开始,后面的节点都会重叠,直到链表结束。因为两个链表中有一个共同节点,则这个节点里的指针域指向的下一个节点地址一样,所以下一个节点也会相交,依次类推。所以,若相交,则两个链表呈“Y”字形。如下图:

         这个题目的考点其实很多,就看面试官要求严不严格了。1:判断链表是否有环。2:如果链表有环,则找到入环结点。3:两个链表各种情况的分析。如果面试官要求不严,那么完成1.、2即可,但是面试官如果要求的话,第三点也是要注意的。

        完成1和2,有以下这几种方法:

1:暴力遍历。分别遍历链表 1 和链表 2,对于链表 1 中的每个节点,依次和链表 2 中的各节点进行比对,查看它们的存储地址是否相同,如果相同,则表明它们相交;反之,如果链表 1 中各节点的存储地址,和链表 2 中的各个节点都不相同,则表明它们不相

猜你喜欢

转载自blog.csdn.net/misayaaaaa/article/details/131610961