2013-09-21 7 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 인터페이스를 구현하고 싶습니까? 어쨌든 기존 구현이 도움이 될지 살펴보십시오. –

관련 문제