今天,我们将学习更复杂的LinkedList:DoubleLinkedList。
与linkedlist相比,除了下一个节点的下一个点外,doublyLinkedList中的节点在上一条之前也有一个节点。因此,它被称为doublyLinkEdlist.doublelinkedlist。doubleLinkedlist是一个两条链接的列表,我们可以向前或向后列出或向后。
今天,我们将学习DoublyLinkedList的基本操作和概念。
像LinkedList一样,DoubleLinkedList由节点一一组成。在要存储的数据外,每个节点还需要存储下一个节点和上一个节点的引用。
DoublyLinkedList需要一个头节点。让我们看看如何构建:
接下来,让我们看一下DoublyLinkedList的一些基本操作。
头部插入的逻辑是:新插入的节点用作新的头节点,而newNode.next则指向原始的头节点。
同时,head.prev需要指向新的插入节点。
查看Java代码:
尾部插入的逻辑是:找到最后一个节点,下一个节点旁边的节点旁边是新插入的节点,并将新插入的节点指向最后一个节点。
如果要在给定位置插入节点,我们需要首先找到插入位置的第一个节点,然后将上一个节点的下一个节点指向新节点。。
同时,我们需要将下一个节点指向下一个节点,并将下一个节点的预见到新节点。
删除节点的逻辑是:找到第一个删除节点的节点,而下一个节点。上一个节点的下一个点指向下一个节点,以及下一个节点的prev指向node to node toth node forade。
本文的代码地址:学习算法
最受欢迎的解释,最深的干货,最简单的教程,您不知道的许多技巧正在等待您发现!
欢迎注意我的公共帐户:“程序的事情”,了解技术并更好地了解您!