链表初识
链表核心为:指针的指向问题。在数据处理上相当于是用空间换时间。
链表作为一种数据结构,在插入和删除操作中有着非常好的表现,在此之前我对此并无具体概念,可能前端对于这种结构接触的少一些的原因。在偶尔逛力扣的时候发现链表的应用极为广泛,因为特意去弄清楚链表到底是什么,为什么那么受欢迎。
首先链表就是这么一个一个链式结构,分为单链表和双链表,链表中的每个元素实际上是一个单独的对象,而所有对象都通过每个元素中的引用字段链接在一起。如果需要访问某一元素则需要从首位一路next下去,性能非常糟糕。但是在插入和删除的操作中,他只需要更改一下指针使前一项指针指向插入元素再让插入元素的next绑定到原有的位置或者跳过需删除的元素即可。
至于删除链表为什么不处理原有元素,因为在更改指向之后原有元素就失去了访问方式。可以通过垃圾回收机制回收(js有这个机制么?)
在添加首位时js的操作只需要head.val = 新值 即可
在链表中删除末尾时需要把末尾变为null(需要循环来寻找到最后一位)