题解 | #旅行牛#
旅行牛
https://www.nowcoder.com/practice/5d9c86c84737493e824593d86cf94efd?tpId=363&tqId=10618360&ru=/exam/oj&qru=/ta/super-company23Year/question-ranking&sourceUrl=%2Fexam%2Foj
import java.util.*;
/*
* public class ListNode {
* int val;
* ListNode next = null;
* public ListNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类
* @return bool布尔型
*/
public boolean hasCycle (ListNode head) {
Set<Integer> seen = new HashSet<>(); // 哈希集合用于存储节点的值
while (head != null) {
if (seen.contains(head.val)) {
return true; // 如果节点的值已经存在于哈希集合中,则说明链表存在环
}
seen.add(head.val); // 将节点的值添加到哈希集合中
head = head.next; // 移动到下一个节点
}
return false; // 如果遍历完整个链表都没有找到重复的节点值,则说明链表没有环
}
}
本题知识点分析:
1.链表
2.哈希
本题解题思路分析:
1.用哈希表进行去重判断,如果节点值有重复的话,返回ture
2.遍历完链表,没有找到重复值,返回false

查看13道真题和解析
