LeetCode练题三:链表

目录

206、反转链表

2、两数相加

141、环形链表


在javascript中链表就是一个对象,只是这个对象的形状如下

javascript 复制代码
const root = {
    val: 1,
    next: {
        val: 2,
        next: {
            val: 3,
            next: {
                val: 4,
                next: null
            }
        }
    }
}

删除某个节点就是

javascript 复制代码
function deleteNode = (node) => {
    node.val = node.next.val
    node.next = node.next.next
}

206、反转链表

javascript 复制代码
var reverseList = function(head) {
    let p1 = head
    let p2 = null
    while(p1){
        const tmp = p1.next
        p1.next = p2
        p2 = p1
        p1 = tmp
    }
    return p2
};

// 就是题目中head = [1,2,3,4,5] 其实是head -> 1 -> 2 -> 3 -> 4 -> 5这样

//就是p1一直等于自己的下一堆,然后P2是等于p1的头指针然后指向自己的一堆

//p1的下一堆越来越少,p2中前面越来越多由p1提供来的节点

就是链表是链表,链表是个数据结构,要用指针来遍历里面的内容

2、两数相加

javascript 复制代码
var addTwoNumbers = function(l1, l2) {
    const l3 = new ListNode(0);
    let p1 = l1
    let p2 = l2
    let p3 = l3
    let carry = 0
    while (p1 || p2) {
        const v1 = p1 ? p1.val : 0
        const v2 = p2 ? p2.val : 0
        const v3 = carry + v1 + v2
        carry = Math.floor(v3 / 10)
        p3.next = new ListNode(v3 % 10)
        if(p1) p1 = p1.next
        if(p1) p2 = p2.next
        p3 = p3.next
    }
    if (carry) {
        p3.next = new ListNode(carry)
    }
    return l3.next
};

141、环形链表

判断一个链表是否是环形,就用两个指针去跑这个链表,一个快,一个慢,要是遇得到相等的,就是环,不是相等的,他自己就会退出循环

javascript 复制代码
var hasCycle = function(head) {
    let p1 = head
    let p2 = head
    while(p1 && p2 && p2.next) {
        p1 = p1.next
        p2 = p2.next.next
        if (p1 === p2) {
            return true
        }
    }
    return false
};
相关推荐
jyyyx的算法博客3 分钟前
传球游戏【思维】
算法
FL162386312911 分钟前
关于2026年南昌大学811信号与系统最后一题电路系统解题思路
算法
殷色玫瑰11 分钟前
C++ STL:map 与 set 详解——从底层红黑树到实际应用
c语言·数据结构·c++·算法·visualstudio·rpc
行者全栈架构师18 分钟前
【鸿蒙心迹】鸿蒙网络请求架构实战——@ohos.net.http 到 Axios 封装、拦截器与统一错误处理(HarmonyOS 7.x)
前端·算法·架构
小宋102132 分钟前
OpenTelemetry GenAI可观测性实战:串起模型、工具、Token与错误
java·人工智能·算法·贪心算法
嫂子开门我是_我哥33 分钟前
青少年抑郁、焦虑、失眠与自杀相关表现的症状联系:一篇网络分析论文所使用的算法深度解读
论文阅读·算法·论文笔记
渊鱼L44 分钟前
CAD随机颗粒插件2D V2.0 更新说明
算法
Lazionr1 小时前
unordered_map和unordered_set的使用
开发语言·c++·算法
行者全栈架构师1 小时前
从 55% 到 6%:一个快餐营养规划器的算法迭代实录
后端·算法·架构
Laurie三省1 小时前
现场版却配上录音室版的歌词?聊聊我给开源 Mac 歌词软件写的多源打分算法
算法·macos·go