rokevin
移动
前端
语言
  • 基础

    • Linux
    • 实施
    • 版本构建
  • 应用

    • WEB服务器
    • 数据库
  • 资讯

    • 工具
    • 部署
开放平台
产品设计
  • 人工智能
  • 云计算
计算机
其它
GitHub
移动
前端
语言
  • 基础

    • Linux
    • 实施
    • 版本构建
  • 应用

    • WEB服务器
    • 数据库
  • 资讯

    • 工具
    • 部署
开放平台
产品设计
  • 人工智能
  • 云计算
计算机
其它
GitHub
  • 双链表

  • 2. 双链表(Doubly Linked List)

双链表

双链表 (Doubly Linked List)

2. 双链表(Doubly Linked List)

  • 定义:每个节点包含数据、指向前驱节点的引用 prev 和指向后继节点的引用 next。

  • 性质:

    • 支持双向遍历,可快速访问前驱节点。
    • 插入 / 删除时间复杂度 (O(1))(需已知节点)。
    • 空间开销更大(每个节点多一个引用)。
  • Java 实现:

    class DNode {
        int data;
        DNode prev, next;
        
        DNode(int data) {
            this.data = data;
            this.prev = null;
            this.next = null;
        }
    }
    
    class DoublyLinkedList {
        private DNode head;
        
        // 在头部插入
        public void insertAtBeginning(int data) {
            DNode newNode = new DNode(data);
            newNode.next = head;
            
            if (head != null) {
                head.prev = newNode;
            }
            
            head = newNode;
        }
        
        // 删除指定节点
        public void delete(DNode node) {
            if (node.prev != null) {
                node.prev.next = node.next;
            } else {
                head = node.next;
            }
            
            if (node.next != null) {
                node.next.prev = node.prev;
            }
        }
    }
    
最近更新:: 2025/10/27 23:01
Contributors: luokaiwen