Java 如何删除链接列表中的第一个节点?
大家好,我在我的链表类中回顾了我的一些方法,当从链表中删除一个节点时,我发现了一个逻辑错误。我在使用removeFirst方法时,在removeLast方法中也遇到了一个错误。问题是两者都会删除列表中的最后一项。不知道为什么,但这是我的代码 删除第一个节点 删除最后一个节点 我环顾了已经发布的问题,但似乎找不到我想要的答案。 我知道一个节点至少有两个值 一个用来保存数据,另一个用来保存对下一个节点的引用Java 如何删除链接列表中的第一个节点?,java,loops,linked-list,nodes,Java,Loops,Linked List,Nodes,大家好,我在我的链表类中回顾了我的一些方法,当从链表中删除一个节点时,我发现了一个逻辑错误。我在使用removeFirst方法时,在removeLast方法中也遇到了一个错误。问题是两者都会删除列表中的最后一项。不知道为什么,但这是我的代码 删除第一个节点 删除最后一个节点 我环顾了已经发布的问题,但似乎找不到我想要的答案。 我知道一个节点至少有两个值 一个用来保存数据,另一个用来保存对下一个节点的引用 这就是我认为第一次的情况。但是当我一个接一个地调用这些方法时,它们都摆脱了最后一个节点。I
这就是我认为第一次的情况。但是当我一个接一个地调用这些方法时,它们都摆脱了最后一个节点。Idk我将查看我的代码,并在必要时更新此问题。但你们能看到我哪里做错了,给我指出正确的方向吗。谢谢。如果您有一个列表a->B->C,a是列表的标题内容,要删除它,只需将指针向前移动到B,即列表中的下一个节点:
public T removeFirst() throws EmptyCollectionException {
// Checking to see if the List is empty or not
if ( isEmpty() )
throw new EmptyCollectionException("LinkedList");
Node<T> first = contents;
contents = contents.getNext();
count--;
return first.getItem();
}
由于还需要返回与第一个节点关联的数据,因此需要保留对它的临时引用。我首先调用它如果您有一个列表a->B->C,a是列表的标题内容,为了删除它,您只需将指针前进到B,即列表中的下一个节点:
public T removeFirst() throws EmptyCollectionException {
// Checking to see if the List is empty or not
if ( isEmpty() )
throw new EmptyCollectionException("LinkedList");
Node<T> first = contents;
contents = contents.getNext();
count--;
return first.getItem();
}
由于还需要返回与第一个节点关联的数据,因此需要保留对它的临时引用。我首先调用了它,我认为您需要将head节点添加到您喜欢的list类中,以定义list的第一个节点
public void deleteFront()
{
if (head!=null)
head = head.Next;
}
我认为您需要将head节点添加到您喜欢的list类中,以定义list的第一个节点
public void deleteFront()
{
if (head!=null)
head = head.Next;
}
用于删除最后一个节点:我觉得很好
删除最后一个节点:我觉得很好。谢谢这对删除第一个节点非常有效。出于某种原因,我认为我需要一个新节点,因此首先获取第二个节点中的项目,然后将其链接到列表的其余部分。你的方法简单得多。我想我明白了为什么在removeLast中再次返回第一个节点。XD谢谢这对removeFirst非常有效。出于某种原因,我认为我需要一个新节点,因此首先获取第二个节点中的项目,然后将其链接到列表的其余部分。你的方法简单得多。我想我明白了为什么在removeLast中再次返回第一个节点。除息的
public void removeFirst() {
if (head == null)
return;
else {
if (head == tail) {
head = null;
tail = null;
} else {
head = head.next;
}
}
}
public T removeFirst() throws EmptyCollectionException {
if (isEmpty())
throw new EmptyCollectionException("LinkedList");
Node < T > temp = contents;
T next = contents.getNext().getItem();
contents = new Node ( next, contents );
count--;
return temp.getItem();
}
contents=contents.getNext()
count--;
return next;