首页 > 解决方案 > 添加和删​​除第一个节点

问题描述

我想创建一个方法来在列表的开头添加一个元素并删除第一个。

这是我的Node班级(我只使用ints 并且我创建了标准的 getter 和 setter)和我的LinkedList班级:

public class Node
{
    private int info = 0;
    private No next = null;

    No(int i)
    {
    this.info = i;
    }
}

public class LinkedList
{
    public Node first, last;
    public int size;

    public LinkedList()
    {
        this.first = this.last = null;
        size = 0;
    }

我能够创建addFirst方法:

void addFirst(int e)
{
    Node n = new No(e);

    if(isEmpty()){
        this.first = n;
        this.last = n;
    }       
    else{
        n.setNext(this.first);
        this.first = n;
    }

    size++;
}

工作正常,addFirst但我不知道如何处理deleteFirst.

我试过类似的东西

int deleteFirst()
{           
    first = this.first.getNext();
    return first.getInfoo();
    size--;
}

但它不起作用。有小费吗?

我很感激帮助。

标签: javalinked-list

解决方案


如果您的deleteFirst方法应该删除第一个Node并返回其值,那么您应该将this.first指针移至下一个,然后返回前一个this.first值。

int deleteFirst() {           
    first = this.first.getInfoo();
    this.first = this.first.getNext();
    size--;
    return first;
}

推荐阅读