题解 | #牛牛队列成环#
牛牛队列成环
https://www.nowcoder.com/practice/38467f349b3a4db595f58d43fe64fcc7
考察知识点:链表
题目分析:通过将每头牛的val保存到一个数组中,之后依次用牛牛的val和数组中的值做比较,如果出现了和当前牛牛的val相同的val,就表明当前链表出现了环
采用的编程语言:C
完整的编码代码:如下所示
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类
* @return bool布尔型
*/
#include <stdbool.h>
bool hasCycle(struct ListNode* head ) {
struct ListNode* tmp_head = head;
int head_val[1000] = {0};
int count = 0;
bool flag = false;
while (1) {
if (tmp_head == NULL) // 如果链表遍历完了,就退出顺序
break;
for (int i = 0; i < count ; i++) { // 将链表当前的成员的值和保存到head_val的值一一对比,如果发现有一样的值,就表明存在循环链表,那就退出程序
if (head_val[i] == tmp_head->val) {
flag = true;
goto EXIT;
}
}
head_val[count++] = tmp_head->val; // 如果判断完head_val的值都没有发现一样的值,就将当前的成员的值保存到head_val中,供下次判断使用
tmp_head = tmp_head->next; // 更新当前成员的值为下一个成员
}
EXIT:
return flag;
}
面试高频TOP202解析 文章被收录于专栏
采用Java,C,Python等方法去解答面试高频TOP202题目,

