真题描述:给定一个链表,返回链表开始入环的第一个结点。 如果链表无环,则返回 null。

    示例 1: 输入:head = [3,2,0,-4](如下图) 输出:tail connects to node index 1 解释:链表中有一个环,其尾部连接到第二个结点。

    环形链表-入环的起点 - 图1
    思路:只需要在第一次flag时返回该节点就可以

    1. /**
    2. * @param {ListNode} head
    3. * @return {ListNode}
    4. */
    5. const detectCycle = function(head) {
    6. while(head){
    7. if(head.flag){
    8. return head;
    9. }else{
    10. head.flag = true;
    11. head = head.next;
    12. }
    13. }
    14. return null;
    15. };

    注意⚠️:若条件给定不能修改节点,则可以改为用快慢指针来做