求单链表/环形链表的相交结点

链表解题技巧: 1.额外数据结构记录(如哈希表) 2.快慢指针(快指针速度一般是慢指针的两倍)

本题解题步骤
1.先判断链表是否为环形链表,如果是,则返回入环的第一个结点,否则返回null2.两个链表都为单链表时,求其相交结点3.一个为单链表,一个为双链表时,这两个链表肯定没有相交结点4.两个都为环形链表

1.先判断链表是否为环形链表,如果是,则返回入环的第一个结点,否则返回null
(1)哈希表解决 (2)快慢指针,关键点:快指针速度是慢指针的两倍,当快指针与慢指针相遇时,此时,新指针从头结点开始,慢指针从相遇点开始遍历,当新指针与慢指针相遇时,此结点即为入环的第一个结点。* 证明: 1.慢指针在第一圈时就与快指针相遇 证:假设慢指针在第二圈时才相遇 一个简单的理解,当慢指针来到入环的第一个结点处时,此时快指针肯定已经在环内,当慢指针跑完了一个环,快指针肯定跑完了两个环,因此不可能在慢指针跑完

求单链表/环形链表的相交结点最先出现在Python成神之路

版权声明:
作者:Zad
链接:https://www.techfm.club/p/4038.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>