
在之前的系列中,我们主要探讨了单向链表。本期我们将深入双向链表(Doubly Linked List),并尝试用 Java 模拟实现一个 MyLinkedList,同时对比 JDK 原生 LinkedList 的用法。
一、LinkedList 的模拟实现
双向链表的每个节点包含三个域:val 存储数据,prev 指向上一个节点,next 指向下一个节点。相比单向链表,它支持双向遍历,但在插入删除时指针操作稍显复杂。

我们需要定义一个内部类 ListNode 和外部类 MyLinkedList,并实现基础接口 IList。
public class MyLinkedList implements IList {
static class ListNode {
public int val;
public ListNode prev;
public ListNode next; // 修正:原名为 head,此处应为 next
public ListNode(int val) {
this.val = val;
}
}
public ListNode head; // 链表头
public ListNode last; // 链表尾
@Override
public void addFirst(int data) { }
@Override
{ }
{ }
{
;
}
{ }
{ }
{
;
}
{ }
{ }
}






