реализация Java-LinkNode - PullRequest
       3

реализация Java-LinkNode

0 голосов
/ 06 декабря 2018

Я пытаюсь реализовать логический метод, принимающий параметр из списка ListNode, тогда метод вернет true, если список соответствует нулю.Если узлы указывают на предыдущий узел, он должен вернуть false.Например, 1, 2, 3, null -> true 1, 2, 3 (указывает на предыдущий узел) 2, 3, 2, 3 и т. Д. Ниже приведен статический метод, который я сделал, но когда япопробуйте доказать, работает ли метод правильно, он не работает так, как я думал.Я приложил свой код ниже.

class ListNode<T> {
public T value;
public ListNode<T> next;

public ListNode(T value, ListNode<T> next)
{
    this.value = value;
    this.next = next;
}

public ListNode<T> setValue(T value) 
{
    return new ListNode<T>(value, this); 
}
}




 class Test

{

публичные статические логические значения завершаются (список ListNode) {

    if(list == null)
    {
        return true;
    }

    ListNode slow;
    ListNode fast;

    slow = list;
    fast = list;

    while(true)
    {
        slow = slow.next; 

        if(fast.next != null) 
        {
            fast = fast.next.next;   
        }
        else 
        {
            return true; // next node is null 
        }


        if(slow == null || fast == null)
        {
            return true;
        }

        if(slow == fast)
        {
            return false; 
        }

}

public static void main(String [] args) 
{
    ListNode list3; // header3
    ListNode one3 = null;
    ListNode two3 = null;
    ListNode three3 = new ListNode(3, two3);

    one3 = new ListNode(1, two3);
    two3 = new ListNode(2, three3);

    list3 = one3;
    System.out.println(terminates(list3));//IT SHOULD RETURN FALSE, BUT IT DOES NOT

}

1 Ответ

0 голосов
/ 06 декабря 2018

Подумайте об использовании Objects.isNull () вместо '== null', который вы используете в своем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...