判断链表是否有环

思路

两个指针p,q;p每次走1步,q每次走2步
如果链表有环,p,q必能相遇
因为q快一些,q会先达到链表尾部

代码

public boolean hasCycle(ListNode head) {
        ListNode p = head,q = head;
        //q快一些,只需要判断q不为空即可
        //q要想走2步,也需判断q.next不为空
        while(q!=null && q.next!= null){
            p = p.next;
            q = q.next.next;
            if(p == q) return true;
        }
        return false;
    }
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页