Программирование : Вопрос 1 : 17

Есть односвязный список. Каждый элемент списка содержит указатель на следующий элемент (next). Нам известен указатель на первый элемент списка (root). Необходимо без использования каких-либо дополнительных структур данных и без изменения структуры элементов списка определить зациклен ли данный список.

 

Уважаемые учащиеся ниже Вы сможете увидеть ответ, перед тем, как ответить, пожалуйста, постарайтесь написать для себя ответ на черновике, и только потом сравните наш ответ с Вашим: 

 

 

 

Верно ли наше решение?

Ответ:

public static boolean isCycleList(Item root){ 
        Item first = root;     
        while(first.getNext() != null){ 
            Item subFirst = root; 
            do { 
                if (subFirst == first.getNext()) 
                    return true; 
                subFirst = subFirst.getNext(); 
            } 
            while (subFirst != first.getNext());         
            first = first.getNext(); 
        } 
        return false; 
    } 
1 балл


© Copyright © 2017 - 2019 Все права защищены. Бесплатное онлайн образование.