题解 | #判断链表中是否有环#

判断链表中是否有环

http://www.nowcoder.com/practice/650474f313294468a4ded3ce0f7898b9

很简单的思路

成环的条件

对当前链表进行遍历,如果有一个结点被访问两次则有环;则问题关键在于如何判断某结点是否被访问过。

注意题目中这句话

数据范围:……链表中任意节点的值满足 |val| <= 100000
结点的值有范围限制(而且不大),可以如下方法区分该结点是否被访问过:
遍历过程中,把每个遍历过的结点值设置为100001(不在数据范围内的数值)
遍历时如果遇到100001,则说明有环,如果遇到空则说明无环。最后记得处理空链表情况

public class Solution {
    static final int MAX_VALUE=100001;
    public boolean hasCycle(ListNode head) {
        if(head==null) return false;
        while(head.next!=null&&head.next.val!=MAX_VALUE){
            head.val=MAX_VALUE;
            head=head.next;
        }
        if(head.next==null) return false;
        else return true;
    }
}
全部评论

相关推荐

每晚夜里独自颤抖:要求太多的没必要理
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务