java linkednode实现

6jygbczu  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(194)

我正在尝试实现一个布尔方法,使用listnode list的参数,如果list遇到null,那么该方法将返回true。如果节点指向前一个节点,那么它应该返回false。例如,1,2,3,null-->真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

}
hrysbysz

hrysbysz1#

考虑使用objects.isnull()而不是贯穿整个代码的'==null'。

相关问题