2023-07-29力扣每日一题

链接:

141. 环形链表

题意:

求链表是否有环

解:

刚好昨天做完的初级算法链表题,翻转和暴力

实际代码:

#include
using namespace std;
struct ListNode
{
    int val;
    ListNode *next;
    ListNode() : val(0), next(nullptr) {}
    ListNode(int x) : val(x), next(nullptr) {}
    ListNode(int x, ListNode *next) : val(x), next(next) {}
};
bool hasCycle(ListNode *head)//翻转法 
{
    if(head==nullptr) return false;
    ListNode* newhead=nullptr,* oldhead=head;
    for(;head!=nullptr;)
    {
        ListNode* temp=head->next;
        head->next=newhead;
        newhead=head;
        head=temp;
    }
    if(oldhead==newhead&&newhead->next!=nullptr) return true;
    return false;
}
/*
bool hasCycle(ListNode *head)//暴力法 
{
    if(head==nullptr) return false;
    int n=0;
    while(head->next!=nullptr)
    {
        head=head->next;
        n++;
        if(n>10007) return true;
    }
    return false;
}*/
int main()
{
    
}

限制:

  • 链表中节点的数目范围是 [0, 104]
  • -105 <= Node.val <= 105
  • pos-1 或者链表中的一个 有效索引

你可能感兴趣的:(力扣每日一题,leetcode)