其他分享
首页 > 其他分享> > 【leetCode】判断链表中是否有环

【leetCode】判断链表中是否有环

作者:互联网

【题目】

给出一个链表,判断链表中是否存在环

【解题思路】

双指针,指针p前进一步,指针q前进两步,当没有环存在时,q会先一步到达null,当有环存在时,pq会相遇,while的判断条件只需要判断q,因为p是慢指针,走的节点q都已经走过了

【解题代码】

function hasCycle( head ) {
    // 双指针
    let p = head
    let q = head
    let flag = false
    while (q !== null && q.next !== null) {
        p = p.next // 指针1,每次前进一步
        q = q.next.next // 指针2,每次前进两步
        if (p === q) {
            flag = true
            break
        }
    }
    return flag
}

标签:head,next,链表,flag,有环,null,leetCode,指针
来源: https://blog.csdn.net/moekosu/article/details/119109820