2017-02-02 6 views
1

Я пытаюсь удалить каждый другой элемент в связанном списке в Java.Пропустить любой другой элемент в связанном списке?

public static IntNode everyOther(IntNode front){ 

    IntNode link = front; 

    if(link.next == null){ 
     return; 
    } 

    while(link.next != null){ 
     link.next = link.next.next; 
    } 
    return 
} 

У меня есть это до сих пор, но он вызывает ошибку, когда я пытаюсь выполнить.

+1

Отметьте null для ссылки на ссылку. – Peter

+1

Что делать, если в списке есть только 2 элемента? В общем, что, если у него есть даже количество элементов? – Spidey

+0

@PeterKuebler Если link.next это последняя строка, не будем ли мы просто присваивать ей значение null? –

ответ

0

Возможно, использование рекурсии для прохождения и удаления будет иметь больше смысла? Я не понимаю, почему вам нужно вернуть узел, если вы редактируете все за пределами самого узла? На мой взгляд, возвращение кажется бессмысленным.

public static void everyOther(IntNode front){ 

    if(link.next == null){ 
     return; 
    } 
    IntNode link = front; 
    IntNode toErase = link.next; 

    if(toErase.next != null) 
    { 
     link.next = toErase.next; 
     everyOther(toErase.next); 
    } 
} 
Смежные вопросы