如何判断链表是否存在回环2014-10-16 小桂子的博客 1、判断链路是否存在回环?(1)回环定义:1-2-3-4-5-6-7| |----8如上事例,则表示存在回环。(2)求解思想:说明:使用快慢指针,慢指针每次只前进一步,快指针每次前进两步,直到慢指针遇上快指针。2、贴上代码(1)数据结构定义
#ifndef LINKLIST_H#define LINKLIST_H #define NULL 0 typedef struct MyNode{int data;struct MyNode* next;};
12 #endif(2)判断函数isExistLookBackUp(MyNode *node),如果存在就返回true,否则返回false.1 #ifndef LINKLIST_BACK_H
#define LINKLIST_BACK_H#include"LinkedList.h"bool isExistLookBackUp(MyNode* node){if(node == NULL || node->next == NULL)return false;MyNode* first = node;MyNode* second = node->next->next;while (true){if(second == NULL || second->next == NULL)break;if(first == second)return true;first=first->next;second = second->next->next;}return false;} #endif // !LINKLIST_H
URL:http://www.bianceng.cn/Programming/sjjg/201410/45906.htm