题解 | #牛牛队列成环#

牛牛队列成环

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题目,

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务