帮助列表?

时间:2010-03-10 21:18:50

标签: java data-structures list

我正在学习java中的链接列表,但我坚持以下

删除Hobnobs之前:波旁威士忌,脆饼,Hobnobs,奥利奥斯

删除Hobnobs后:bourbon,shortbread,oreos

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

到目前为止,我已经得到了这个

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

2 个答案:

答案 0 :(得分:1)

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

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

becomes

A--->B--->D

你应该能够搞清楚。

答案 1 :(得分:1)

BiscuitNode添加递归方法,可能命名为deleteYourSuccessorIfItMatches(String pattern),检查它的后继是否与模式匹配,如果匹配,则当前节点的后继将设置为后继的后继者,否则该方法在后继者上递归调用。调用方法Biscuit.delete(String pattern)必须在first节点上执行相同的操作。