亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【學習打卡】第三天 數據結構和算法

数据结构 - 链表

链表是什么?

链表也是多个元素组成的列表。
和数组不同的是,链表的存储不是连续的,用next指针来连接起来。
js中的链表使用Object来实现。

class ListNode {
  constructor(val, next) {
    this.val = val;
    this.next = next;
  }
}

举例说明链表
图片描述

const a = {val: 'a'},
const b = {val: 'b'},
const c = {val: 'c'},
const d = {val: 'd'},

a.next = b
b.next = c
c.next = d
d.next = null

数组 vs 链表

  • 数组的存储是连续的,增删非首尾元素往往需要移动其他元素。
  • 链表的存储不是连续的,增删非首尾元素不需要移动其他元素,只需要修改next的指向即可。

链表的基本操作

遍历链表

思路:
1、声明一个指针,默认指向头部
2、获取完当前值后,指针指向下一个链表元素
3、循环第二步,直至指针指向null结束

let p = a;
while(p) {
  console.log(p.val);
  p = p.next;
}
插入链表

思路:
1、将要插入的上一个元素的next指向插入元素
2、插入元素的next指向下一个元素

// 在 b 和 c 之间插入元素 e
const e = {val: 'e'};
b.next = e;
e.next = c;
删除链表

思路:
1、将要删除的上一个元素的next指向删除的下一个元素

// 删除c
b.next = d
點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
Web前端工程師
手記
粉絲
3
獲贊與收藏
9

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消