题解 | #牛牛队列成环#
牛牛队列成环
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题目,