Java 是否从双链接列表中删除节点?
这是到目前为止的方法Java 是否从双链接列表中删除节点?,java,Java,这是到目前为止的方法 public DNode removeDnode(DNode v, DNode e, DNode f) { e = v.nextNode(); f = v.prevNode(); f.setNext() = e; e.setPrev() = f; v.setPrev(null); v.setNext(null); size = size - 1; return v; } 这是我的节点类 public clas
public DNode removeDnode(DNode v, DNode e, DNode f)
{
e = v.nextNode();
f = v.prevNode();
f.setNext() = e;
e.setPrev() = f;
v.setPrev(null);
v.setNext(null);
size = size - 1;
return v;
}
这是我的节点类
public class DNode
{
public String element;
public DNode next;
public DNode previous;
public DNode(String e, DNode n)
{
element = e;
next = n;
}
public void setElement(String newElem)
{
element = newElem;
}
public void setNext(DNode newNext)
{
next = newNext;
}
public void setPrev(DNode newPrev)
{
previous = newPrev;
}
public String getElement()
{
return element;
}
public DNode nextNode()
{
return next;
}
public DNode prevNode()
{
return previous;
}
}
我发现类DNode中的错误方法setNext不能应用于给定的类型,但我不知道为什么。有什么帮助吗
不要读这个,这是为了使用字符,所以它会让我张贴
编辑:下面的新方法
public DNode removeDnode(DNode current)
{
DNode next = current.nextNode();
DNode previous = current.prevNode();
previous.setNext(next);
next.setPrev(previous);
current.setPrev(null);
current.setNext(null);
size = size - 1;
return current;
}
但是我如何处理列表的结尾和开头,您需要做:
f.setNext(e);
e.setPrev(f);
f、 setNext=e;这是不合法的Java@aix什么这可能是错误的,但我只是想让它发挥作用。是的,它只在链表中间工作,需要我不想要的所有三个节点输入。我的意思是你可以帮助我们帮助你,让你的代码更容易理解。要删除节点,不必传入三个节点。从本质上讲,双链接列表节点将在一个对象中包含进行删除所需的所有内容。