2011-12-15 73 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);