2013-09-21 141 views
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); 
    } 
} 

回答

1

好了,不知道问题是什么,你所面对的,你需要在里面的条款,以检查要删除的项目是否实际上是链表,即

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

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

0

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

+0

如果我将其更改为此,该怎么办? 'if(next.value.equals(element))' – lauraxx

+0

您是试图从头编写自己的数据结构,还是想实现java.util.Set接口?无论如何,看看那些现有的实现将会有所帮助。 –