2011-12-15 74 views
-1

这里的方法到现在从双链表中删除一个节点?

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; 
} 

新的方法,但我怎么处理的结束和开始名单

+2

`v`? `e`? `f`?... – NPE 2011-12-15 14:58:59

+0

`f.setNext()= e;`不合法Java – 2011-12-15 15:02:59

回答

2

你需要做的:

f.setNext(e); 
e.setPrev(f);