定义两个指针,一前一后,同时移动,前面的移动比后面的慢,如果是循环的则后面的肯定会追上前面的
|
思路就是弄两个指针,开始指向不同的链表不同的位置,然后1个指针移动间隔是1,一个指针移动间隔是2,如果快的能追上慢的,那说明就有环了。就如何两个人绕圈跑步,速度不一样,如果速度快的能追上慢的,那说明跑道是环型的。
bool CircleInList(Link* pHead)
{
if (pHead = = NULL || pHead->next = = NULL)//无节点或只有一个节点并且无自环
{
return false;
}
if (pHead->next = = pHead)//自环
{
return true;
}
Link *pTemp1 = pHead;
Link *pTemp = pHead->next;
while (pTemp != pTemp1 && pTemp != NULL && pTemp->next != NULL)
{
pTemp1 = pTemp1->next;
pTemp = pTemp->next->next;
}
if (pTemp == pTemp1)
{
return true;
}
return false;
}
思路就是弄两个指针,开始指向不同的链表不同的位置,然后1个指针移动间隔是1,一个指针移动间隔是2,如果快的能追上慢的,那说明就有环了。就如何两个人绕圈跑步,速度不一样,如果速度快的能追上慢的,那说明跑道是环型的。
bool CircleInList(Link* pHead)
{
if (pHead = = NULL || pHead->next = = NULL)//无节点或只有一个节点并且无自环
{
return false;
}
if (pHead->next = = pHead)//自环
{
return true;
}
Link *pTemp1 = pHead;
Link *pTemp = pHead->next;
while (pTemp != pTemp1 && pTemp != NULL && pTemp->next != NULL)
{
pTemp1 = pTemp1->next;
pTemp = pTemp->next->next;
}
if (pTemp == pTemp1)
{
return true;
}
return false;
}
分享到:
相关推荐
JAVA面试题JAVA面试题JAVA面试题JAVA面试题JAVA面试题JAVA面试题
华为招聘Java面试题:概念题:1. 描述Struts体系结构?对应各个部分的开发工作主要包括哪些?2. JSP有哪些内置对象和动作?它们的作用分别是什么?……
Java面试题集锦6:华为面试题 管理资料.pdfJava面试题集锦6:华为面试题 管理资料.pdfJava面试题集锦6:华为面试题 管理资料.pdfJava面试题集锦6:华为面试题 管理资料.pdfJava面试题集锦6:华为面试题 管理资料.pdf...
华为面试题华为面试题华为面试题华为面试题华为面试题华为面试题华为面试题华为面试题华为面试题华为面试题华为面试题华为面试题华为面试题华为面试题华为面试题华为面试题
Java华为面试真题Java华为面试真题Java华为面试真题Java华为面试真题
华为面试试题精华:C语言描述 华为面试试题精华:C语言描述 华为面试试题精华:C语言描述
C语言面试题大汇总之华为面试题:1、局部变量能否和全局变量重名;2、如何引用一个已经定义过的全局变量;3、全局变量可不可以定义在可被多个.C文件包含的头文件中 为什么;4、语句for( ;1 ;)有什么问题 它是什么...
2010华为java面试题华为java面试题华为java面试题华为java面试题华为java面试题2010华为java面试题华为java面试题华为java面试题华为java面试题华为java面试题2010华为java面试题华为java面试题华为java面试题华为...
华为C++面试题华为C++面试题华为C++面试题 华为C++面试题华为C++面试题 华为C++面试题华为C++面试题 华为C++面试题 华为C++面试题 华为C++面试题
C语言面试题大汇总之华为面试题
c语言 面试题 与c语言有关的面试题 华为笔试题 c语言 面试题 与c语言有关的面试题 华为笔试题 c语言 面试题 与c语言有关的面试题 华为笔试题 c语言 面试题 与c语言有关的面试题 华为笔试题 c语言 面试题 与c语言有关...
华为java面试题及答案,希望想去华为的朋友能顺利。
华为面试题与答案 华为面试题与答案 华为面试题与答案
华为 1.static有什么用途?(请至少说明两种) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内(但在函数体外)...最新的统计华为面试题.无论面试还是学习指导都具有重要意义.
华为面试题.doc 华为面试题.doc 华为面试题.doc 华为面试题.doc 华为面试题.doc
华为面试题及答案华为面试题及答案华为面试题及答案
1、一个学生的信息是:姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一起, 给出一个age, 在些链表中删除学生年龄等于age的学生...里面有我自己从华为面试题里的汇总,有简答题和改错题,编程题等等.
华为面试题及答案.txt 华为面试题及答案.txt 华为面试题及答案.txt
简介:计算机考研之家搜集的华为C语言经典面试题,来试试你的C语言水平吧。每道题都附有详细解答和讲解,很有参考价值的C语言面试题。怎么判断链表中是否有环?bool