0

我需要使用递归从链表中删除一个节点。这是我到目前为止的代码......

public class SortedSetNode implements Set {
    protected String value;
    protected SortedSetNode next;

public boolean remove(String element) {

    if (value.equals(element))
    {
        next = next.getNext();
        return true;
    }
    else
    {
        return next.remove(element);
    }
}
4

2 回答 2

1

好吧,在不知道您面临什么问题的情况下,您需要一个子句来检查您要删除的项目是否实际上在链接列表中,即

if(next == null){
    return false;
}

除此之外,您的代码看起来不错。您遇到的问题是什么?

于 2013-09-21T03:38:33.037 回答
0

如果value属性是当前节点的值,那么你需要在值等于元素时删除自己,而不是删除下一个。除非它是下一个节点的值。您可能需要一个起点,因此当您比较值时,您将下一个节点的值与字符串进行比较,如果找到,请执行您的next = next.getNext();. 当然需要检查空值。

于 2013-09-21T04:23:08.040 回答