美文网首页
142. 环形链表II

142. 环形链表II

作者: 乘瓠散人 | 来源:发表于2021-04-15 13:03 被阅读0次

题目:给定一个链表,如果有环,返回链表开始入环的第一个节点;如果无环,返回null。
思路1:哈希表
遍历链表中的每个节点,并将其存储在哈希表中,一旦遇到了之前遍历过的节点,就可判定链表中存在环。

ListNode* detectCycle(ListNode *head){
    unordered_set<ListNode*> visited;
    while(head!=nullptr){
        if(visited.count(head)){
            return head;
        }
        visited.insert(head);
        head = head->next;
    }
    return nullptr;
}

思路2:快慢指针
详细解析看leetcode官方题解吧

ListNode* detectCycle(ListNode *head){
    if(head == nullptr || head->next == nullptr) return nullptr;
    ListNode* slow = head;
    ListNode* fast = head;
    while(fast != nullptr){
        if(fast->next == nullptr) return nullptr;
        slow = slow->next;
        fast = fast->next->next;
        if(slow == fast){
            ListNode* ptr = head;
            while(slow!=ptr){
                slow=slow->next;
                ptr=ptr->next;
            }
            return ptr;
        }
    }
    return nullptr;
}

相关文章

  • LeetCode 142 环形链表 II Linked List

    有关链表的LeetCode做题笔记合集,Python实现 链表定义 142. 环形链表 II Linked Lis...

  • TOP100

    142. 环形链表 II[https://leetcode-cn.com/problems/linked-list...

  • 双指针

    一、双指针总结 1.1题目 快慢指针(主要解决链表中的问题) 141.环形链表 142.环形链表 II 876.链...

  • 获取有环单向列表环入口的结点(双指针法)

    LeetCode 141.环形链表 142.环形链表II 对题目不熟悉的同学,可以先刷下题,结合LeetCode上...

  • LeetCode:142. 环形链表 II

    问题链接 142. 环形链表 II[https://leetcode-cn.com/problems/linked...

  • 142. 环形链表 II

    题目地址(142. 环形链表 II) https://leetcode.cn/problems/linked-li...

  • LeetCode 142. 环形链表 II

    142. 环形链表 II 给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链...

  • LeetCode 142. 环形链表 II(Linked Lis

    142. 环形链表 II 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 为了表示...

  • 142. 环形链表 II

    142. 环形链表 II 问题 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 为...

  • 142. 环形链表 II

    题目链接: 142. 环形链表 II 题目描述: 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返...

网友评论

      本文标题:142. 环形链表II

      本文链接:https://www.haomeiwen.com/subject/fgywkltx.html