前端培训丁鹿学堂:前端算法面试指南之链表

43 阅读1分钟
链表

链表是多个元素组成的列表。但是元素的存储是不连续的,用next指针连在一起。

链表和数组的区别

他们都是存多个元素的。但是数组如果在非首尾增加或删除元素的时候,数组中所有元素都要移动。而链表的话是不需要的,只需要更改next的指向即可。

js中模拟链表

js中也没有链表数据结构。通常用对象(Objcet)去模拟链表。

let a = {val:'a'}
let b = {val:'b'}
let c = {val:"c"}
let d = {val:'d'}
a.next = b
b.next = c
c.next = d

这样就实现了最简单的链表

遍历链表

通过不断改变next的指向来遍历链表中的值

// 遍历链表
let obj = a
while(obj){
    console.log(obj.val);
    obj = obj.next
}
在链表中插入值

只需要修改next 的值,就可以插入数据

let f = {val:'f'}
c.next = f
f.next = d
链表中删除

直接修改next 的指向就可以实现删除,下面的代码就是删除了f 把删除的节点的上个next指向删除节点的下个next即可。

c.next = d