zoukankan      html  css  js  c++  java
  • 怎么判断链表中是否有环

    思想为:设置两个指针,一个步长为1,另一个步长为2,依次后移,如果相遇且都不为空,则有环。

    与这个类似的问题包括:怎么快速检测出一个巨大的链表中的死链?或者如何找出一个单链表的中间节点?

    代码为:

    bool loop(node* head)
    {
    bool flag = true;
    if (head == NULL)
    {
       flag = false;
    }
    node* one = head;
    node* two = head->next;
    if (two == NULL)
    {
       flag = false;
    }
    while (one != two)
    {
       if (one != NULL)
       {
        one = one->next;
       }
       if (two != NULL)
       {
        two = two->next;
       }
       if (two == NULL)
       {
        break;
       }
       two = two->next;
       if (one == NULL || two == NULL)
       {
        break;
       }
    }
    if (one == NULL || two == NULL)
    {
       flag = false;
    }
    return flag;
    }

  • 相关阅读:
    奔跑的绵羊js
    13.差分
    12.子矩阵的和
    11.前缀和
    10.高精度除法
    9.高精度乘法
    8.高精度减法
    7.高精度加法
    6.数的三次方根
    5.数的范围
  • 原文地址:https://www.cnblogs.com/alexzp/p/2336539.html
Copyright © 2011-2022 走看看