JS中的链表(含leetcode例题)

文章目录

链表

基本特性
  • 空间上不连续
  • 每存放一个值,都要多开销一个引用空间
优点
  • 不用担心空间碎片的问题
  • 添加和删除非常容易(改节点的引用地址)
缺点
  • 查询慢
  • 每个节点创建都要创建next引用,浪费内存

传递链表要传递的是根节点

链表的每一个节点,都认为自己是根节点

js 复制代码
// 链表创建
function Node(value) {
	this.value = value;
	this.next = null
}
const a = new Node(1)
const b = new Node(2)
const c = new Node(3)

a.next = b
b.next = c
c.next = null
链表循环遍历
js 复制代码
// 链表循环遍历
function traverse(root) {
  let temp = root
  while(true) {
    if(temp != null) {
      console.log(temp.value)
    } else {
      breack;
    }
    temp = temp.next
  }
}
traverse(a)
链表递归遍历
js 复制代码
function traverse(root) {
  if(root.next === null) return;
  console.log(root.value)
  traverse(root.next)
}
链表逆置

从后往前改变指向

js 复制代码
function reversal(root) {
  if (!root.next) return root // 终止条件为到最后一个节点
  const res = reversal(root.next) // 接收最内层(最后一个节点)return的 root
  root.next.next = root // 将下一个节点指向当前节点
  root.next = null // 当前节点指向null
  return res
}
相关推荐
云浪3 小时前
Go 并发实战:从零实现一个高并发安全的任务调度器
javascript·后端·go
OpsEye11 小时前
大模型账单对账难:不同厂商 Token 统计口径差异怎么处理
javascript·ai编程
全栈项目管理程序猿11 小时前
ArcGIS JS 基础教程(32):体元系列 - VoxelSlice 体元切片
前端·javascript
Hilaku13 小时前
AI 流式输出都用 SSE,什么时候必须换 WebSocket?
前端·javascript·程序员
奇牙coding13 小时前
Codex CLI 升级后多文件编辑静默失效:config.yaml 枚举变更排查与修复指南
java·前端·javascript·ai
不简说14 小时前
AI 帮你画模板、点一下就云打印:sv-print 这三个月都干了啥
前端·javascript·人工智能
Nil20814 小时前
leetcode 49字母异位分组
算法·leetcode·哈希算法
大明二代14 小时前
从零构建 Mastra RAG MVP:DeepSeek、SiliconFlow 与 PostgreSQL/pgvector 实战
javascript·数据库·人工智能
结局无敌15 小时前
React Native for OpenHarmony 实战:三方库 react-native-paper 的鸿蒙化适配指南
javascript·人工智能·深度学习·react native·react.js·ecmascript·harmonyos
铁皮饭盒15 小时前
CPU就行, 老照片变清晰, 本地部署582mb腾讯的模型, 本地部署, 过节了给长辈们变个小魔术
前端·javascript·后端