zoukankan      html  css  js  c++  java
  • 刷题-牛客-判断链表中是否有环

    判断链表中是否有环

    题目链接

    题目描述

    题号:NC4
    判断给定的链表中是否有环。如果有环则返回true,否则返回false。
    你能给出空间复杂度的解法么?

    题目分析

    1. 使用快慢指针,一个指针一次向后移动一步,另一个指针一次向后移动两部
    2. 若快指针的当前结点或下一个结点为nullptr,说明链表无环
    3. 若快指针等于慢指针说明链表有环

    代码

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        bool hasCycle(ListNode *head) {
            if (!head || !(head->next)) return false;
            ListNode* p1 = head;
            ListNode* p2 = head->next->next;
            while (p2 && p2->next) {
                if (p1 == p2) return true;
                p1 = p1->next;
                p2 = p2->next->next;
            }
            return false;
        }
    };
    
  • 相关阅读:
    ServletConfig对象
    乱码问题
    response request
    mysql
    数据库三范式 简单理解
    会话 cookie
    ServletContext对象
    读取工程中的配置文件
    Servlet与缓存
    C#捕获异常崩溃时
  • 原文地址:https://www.cnblogs.com/HanYG/p/14890012.html
Copyright © 2011-2022 走看看