链表底层实现

public class LinkedList {
private class Node {
E e;
Node next;//指向下一个元素节点的引用
//构造方法
public Node(E e,Node next) {
this.e = e;
this.next = next;
}
public Node(E e) {
this(e,null);
}
public Node() {
this(null,null);
}

    @Override
    public String toString() {
        return e.toString();
    }
}

private Node dummyhead;//虚拟头节点
private int size;

//构造方法
public LinkedList() {
    dummyhead = new Node(null,null);
    size = 0 ;
}

//获取链表大小
public int getSize() {
    return size;
}

public boolean isEmpty() {
    return size ==0;
}

//向链表首位置添加元素
public void addFirst(E e) {

// Node node = new Node(e,null);//构造新增节点
// node.next = head;
// head = node;
// dummyhead = new Node(e,dummyhead);
// size++;
add(0, e);

}
//向链表末尾位置添加元素
public void addLast(E e) {
    add(size, e);
    //size++;
}

//向链表0~based  区间添加元素
public void add(int index,E e) {
    if(index<0 || index>size) {
        throw new IllegalArgumentException("index error!");
    }
    //定义用于记录新增元素的前一个元素
    Node prev = dummyhead;
    //使用虚拟头节点优化了此代码

// if(index==0) {
// addFirst(e);
// }
//循环遍历
for(int i=0 ;i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值