首页 > 其他分享 >单向链表利用快慢指针

单向链表利用快慢指针

时间:2023-01-30 20:44:23浏览次数:56  
标签:node slow return 单向 fast next 链表 指针

/**
 * 单链表的中点
 */
const middleNode = (node = linkList) => {
    let slow = node, fast = node;
    while(fast && fast.next){
        slow = slow.next
        fast = fast.next.next
    }
    return slow.value
}

/**
 * 判断链表是否包含环
 */
const hasCycle =  (node = linkList) => {
    let slow = node, fast = node;
    while(fast && fast.next){
        slow = slow.next
        fast = fast.next.next
        if(fast === slow){
            return true
        }
    }
    return false
}

  

标签:node,slow,return,单向,fast,next,链表,指针
From: https://www.cnblogs.com/zhenjianyu/p/17077203.html

相关文章

  • 循环链表
    循环链表一种头尾相接的链表,表中最后一个结点的指针域指向头结点,整个链表形成一个环即没有NULL指针,因此遍历操作时,终止条件是否等于头指针优:从表中任一结点出发,均可找到......
  • 1669. 合并两个链表
    1669.合并两个链表題解:模拟链表操作/***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*ListNode......
  • 【双指针】LeetCode 11. 盛最多水的容器
    题目链接11.盛最多水的容器思路在每个状态下,无论长板或短板向中间收窄一格,都会导致水槽底边宽度−1:若向内移动短板,则\(min(h[i],h[j])\)可能变大,因此下个水槽的面......
  • 指针初阶
    定义在64位中,指针是8个字节在32位中,指针是4个字节因为8个字节是指针类型的意义指针类型决定了:指针解引用的权限有多大指针类型决定了,指针走一步,能走多远(步长......
  • 单链表
    线性表的链式存储线性表的链式表示又称为非顺序映像或链式映像结点在存储器中位置是任意的,即逻辑上相邻的数据元素在物理上不一定相邻;链表中的逻辑次序和物理次序不一定......
  • 114. 二叉树展开为链表
    问题描述https://leetcode.cn/problems/flatten-binary-tree-to-linked-list/description/解题思路这个题目,用一个数组就能很好的解决。但空间复杂度是O(n).题目中给的......
  • 【双指针】LeetCode 18. 四数之和
    题目链接18.四数之和思路与【双指针】LeetCode15.三数之和思路相似,但是要注意测试用例可能溢出,需要转换为long代码classSolution{publicList<List<Inte......
  • LeetCode:1669. 合并两个链表
    /***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*ListN......
  • LeetCode-21.合并两个有序链表
    21.合并两个有序链表(MergeTwoSortedLists)将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例1:输入:l1=[1,2,4......
  • 完整的合并有序链表(包括节点定义 生成链表 合并)
    1.定义节点publicclassListNode{intval;ListNodenext;publicListNode(){}publicListNode(intval){this.val=val;......