最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

劍指offer之判斷鏈表是否包含環(huán)

 更新時間:2019年02月21日 16:11:08   作者:chenyu_insist  
今天小編就為大家分享一篇關于劍指offer之判斷鏈表是否包含環(huán),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

1 問題

判斷鏈表是否包含環(huán)

2 思路

2個指針,一個指針走一步,一個指針走2步,如果相遇則有,反之無。

3 代碼實現(xiàn)

#include <stdio.h>
#include <stdlib.h>
#define true 1
#define false 0;
typedef struct node
{
  int value;
  struct node *next;
}Node;
/*
 *判斷鏈表是否有環(huán)
 */
int isCircleList(Node *head)
{
  if (head == NULL)
  {
    return false;
  }
  Node *first = NULL;
  Node *second = NULL;
  first = head;
  second = head;
  while (second != NULL && (second->next) != NULL && (second->next->next != NULL))
  {
    first = first->next;
    second = second->next->next;
    if (first == second)
    {
      return true;
    }
  }
  return false;
}
int main()
{
  Node *head = NULL;
  Node *node1 = NULL;
  Node *node2 = NULL;
  Node *node3 = NULL;
  Node *node4 = NULL;
  Node *node5 = NULL;
  Node *node6 = NULL;
  Node *node7 = NULL;
  head = (Node *)malloc(sizeof(Node));
  node1 = (Node *)malloc(sizeof(Node));
  node2 = (Node *)malloc(sizeof(Node));
  node3 = (Node *)malloc(sizeof(Node));
  node4 = (Node *)malloc(sizeof(Node));
  node5 = (Node *)malloc(sizeof(Node));
  node6 = (Node *)malloc(sizeof(Node));
  node7 = (Node *)malloc(sizeof(Node));
  if (head == NULL || node1 == NULL || node2 == NULL || node3 == NULL
    || node4 == NULL || node5 == NULL || node6 == NULL || node7 == NULL)
  {
    printf("malloc fail\n");
    return false;
  }
  //       node7<-node6 <-node5
  //       |       |
  //head->node1->node2->node3->node4
  head->value = 0;
  head->next = node1;
  node1->value = 1;
  node1->next = node2;
  node2->value = 2;
  node2->next = node3;
  node3->value = 3;
  node3->next = node4;
  node4->value = 4;
  node4->next = node5;
  node5->value = 5;
  node5->next = node6;
  node6->value = 6;
  node6->next = node7;
  node7->value = 7;
  node7->next = node2;
  int result = isCircleList(head);
  if (result)
  {
    printf("list have circle\n");
  }
  else
  {
    printf("list do not have circle\n");
  }
  return true;
}

4 運行結果

list have circle

總結

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內(nèi)容請查看下面相關鏈接

相關文章

最新評論

澎湖县| 盐津县| 安吉县| 沭阳县| 石渠县| 科技| 庆城县| 邳州市| 蕲春县| 娱乐| 嘉峪关市| 永安市| 视频| 专栏| 台北市| 思南县| 卫辉市| 大渡口区| 沈丘县| 剑阁县| 连城县| 涞源县| 泾源县| 当雄县| 郯城县| 澄迈县| 慈利县| 汝阳县| 称多县| 千阳县| 鄂伦春自治旗| 维西| 开封市| 鄄城县| 县级市| 乐昌市| 青浦区| 万盛区| 岚皋县| 临漳县| 犍为县|