如何使用递归从链表中删除节点?

时间:2013-09-21 03:31:54

标签: linked-list singly-linked-list

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

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

2 个答案:

答案 0 :(得分:1)

嗯,不知道你面临的问题是什么,你需要一个条款来检查你要移除的项目是否实际上在链表中,即

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

除此之外你的代码看起来很好。你遇到的问题是什么?

答案 1 :(得分:0)

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