当前位置: 首页 > Web前端 > JavaScript

Day69-100数据结构链表(十)——双链表简介

时间:2023-03-27 12:16:11 JavaScript

(1)要求双链表,即每个节点都有一个额外的字段指向前一个节点。(2)双链表1.定义双链表的工作方式类似,但还有一个引用字段,称为“prev”字段。有了这个额外的字段,您将能够知道当前节点的前一个节点。Java代码定义如下://Definitionfordoubly-linkedlist.classDoublyListNode{intval;DoublyListNode下一个,上一个;DoublyListNode(intx){val=x;}}2.操作:(1)如果我们想在已有节点prev之后插入一个新节点cur中添加一个操作,我们可以把这个过程分为两步:linkcurwithprev和next,其中next是prev原来的next节点;使用cur重新链接prev和next。类似于单向链表,add操作的时间和空间复杂度都是O(1)。(2)删除操作如果我们想从双向链表中删除一个已经存在的节点cur,我们可以简单地将它的前一个节点prev和下一个节点next连接起来。与单向链表不同,使用“prev”字段可以很容易地在恒定时间内获取前一个节点。因为我们不再需要遍历链表来获取前一个节点,所以时间和空间复杂度都是O(1)。示例我们的目标是从双向链表中删除节点6。因此,我们将其前一个节点23与其下一个节点15链接起来:节点6现在不在我们的双向链表中。如果我们要删除第一个节点或最后一个节点怎么办?删除第一个节点就是将第二个节点的prev指向null。删除最后一个节点就是将倒数第二个节点的next指向null。上面的参考链接https://leetcode.cn/leetbook/...写在最后,在学习的路上,经常偷懒《有想学技术需要监督的同学嘛~》https://mp.weixin.qq.com/s/Fy...