baby sword‘s blog baby sword‘s blog
首页
  • java基础
  • java进阶
大数据
  • mysql

    • mysql索引
    • mysql日志
  • redis

    • 单机下的redis
    • 集群下的redis
  • Spring
  • springboot
  • RPC
  • netty
  • mybatis
  • maven
  • 消息队列
  • kafka
  • zookeeper
  • rocketmq
  • 七大设计原则
  • 创建型模式
  • 结构型模式
  • 行为型模式
  • SpringCloud

    • eureka
  • SpringCloud Alibaba

    • nacos
  • 计算机网络
  • 操作系统
  • 算法
  • 个人项目
  • 个人面试面经
  • 八股记忆
  • 工作积累
  • 逻辑题
  • 面试

    • 百度后端实习二面
GitHub (opens new window)

zhengjian

不敢承担失去的风险,是不可能抓住梦想的
首页
  • java基础
  • java进阶
大数据
  • mysql

    • mysql索引
    • mysql日志
  • redis

    • 单机下的redis
    • 集群下的redis
  • Spring
  • springboot
  • RPC
  • netty
  • mybatis
  • maven
  • 消息队列
  • kafka
  • zookeeper
  • rocketmq
  • 七大设计原则
  • 创建型模式
  • 结构型模式
  • 行为型模式
  • SpringCloud

    • eureka
  • SpringCloud Alibaba

    • nacos
  • 计算机网络
  • 操作系统
  • 算法
  • 个人项目
  • 个人面试面经
  • 八股记忆
  • 工作积累
  • 逻辑题
  • 面试

    • 百度后端实习二面
GitHub (opens new window)
  • 计算机网络

  • 操作系统

  • 算法

    • 常见的排序算法
    • 双向链表模板
    • 如何在海量元素中(例如 10 亿无序、不定长、不重复)快速判断一个元素是否存在
    • 二叉树的遍历
    • 单调栈
    • 二分查找
    • 买卖股票最佳时机
    • 打家劫舍
    • dp题
    • 链表刷题
    • 回溯相关
    • 树相关
    • 二维数组前缀和
    • 哈夫曼树
    • 埃拉托斯特尼筛法
  • 计算机基础
  • 算法
xugaoyi
2023-06-24

双向链表模板

class DoubleLinkedList{
    private Node head;
    private Node tail;
    private int size;

    public DoubleLinkedList(){
        head=new Node(0,0);
        tail=new Node(0,0);
        head.next=tail;
        tail.pre=head;
        size=0;
    }

    public void addFirst(Node node){
        node.next=head.next;
        node.pre=head;
        head.next.pre=node;
        head.next=node;
        size++;
    }

    public void remove(Node node){
        node.pre.next=node.next;
        node.next.pre=node.pre;
        size--;
    }

    public Node removeLast(){
        if(tail.pre==head){
            return null;
        }
        Node last=tail.pre;
        remove(last);
        return last;
    }

    public int size(){
        return size;
    }

    public static class Node{
        int key;
        int value;
        Node pre;
        Node next;
        public Node(int key,int value){
            this.key=key;
            this.value=value;
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
编辑 (opens new window)
上次更新: 2024/02/22, 14:03:19
常见的排序算法
如何在海量元素中(例如 10 亿无序、不定长、不重复)快速判断一个元素是否存在

← 常见的排序算法 如何在海量元素中(例如 10 亿无序、不定长、不重复)快速判断一个元素是否存在→

最近更新
01
spark基础
02-22
02
mysql读写分离和分库分表
02-22
03
数据库迁移
02-22
更多文章>
Theme by Vdoing | Copyright © 2019-2024 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式