2010-03-10 44 views
0

IM学习挂在java中的列表,但我坚持以下帮助清单?

删除Hobnobs前:波旁酒,脆饼,Hobnobs,奥利奥

删除Hobnobs后:波旁酒,脆饼,奥利奥

我想创建一个删除方法,删除中间节点“Hobnobs”。

Ive得到这到目前为止

public class Biscuit { 

private BiscuitNode first; 
public Biscuit() 
{ 
    this.first=null; 
} 
public BiscuitNode getFirst() { 
    return first; 
} 
public void insert(BiscuitNode first) { 
    this.first = first; 
} 

public void deleteFirst() 
{ 
    this.first.setSucc(this.first); 
} 

public void delete(String BiscuitName) 
{ 

的Hobnobs是 “BiscuitNode secondLast=new BiscuitNode("Hobnobs", last);

+0

这听起来像这是一个家庭作业问题。在SO上问作业问题没什么不妥,但你应该把它们标记为“家庭作业”。 但是,在现实生活中,您通常应该使用内置的'java.util.LinkedList' – MatrixFrog

回答

1

在当前节点上使用getSucc()步入节点链在一个循环。然后,一旦找到匹配的节点,请将其前任指向其后继者。例如。如果我们想从以下列表中删除节点C:

A--->B--->C--->D 

becomes 

A--->B--->D 

你应该能够弄明白。

+0

对不起,我不明白 – user290794

+0

请参阅http://stackoverflow.com/questions/10042/how-do-i-implement-一个链表结构,在Java的。 –

+0

谢谢你,我现在明白了。 – user290794

1

添加一个递归方法BiscuitNode,或许命名为deleteYourSuccessorIfItMatches(String pattern)来检查,如果它的继任者的模式匹配,如果确实如此,当前节点的继任者将被设置为后继的接班人,否则该方法被称为递归上继任者。调用方法Biscuit.delete(String pattern)必须在first节点上执行相同的操作。