Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在给定特定类的情况下反转LinkedList:未提供所需输出的代码_Java_Linked List - Fatal编程技术网

Java 如何在给定特定类的情况下反转LinkedList:未提供所需输出的代码

Java 如何在给定特定类的情况下反转LinkedList:未提供所需输出的代码,java,linked-list,Java,Linked List,我想编写一个方法public void reverse(),它只使用下面的类来反转LinkedList。 因此,给定列表432 1,结果应该是1234 public class LinkedList { public Node head = null; public class Node { public int value; public Node next; Node(int value, Node next) {

我想编写一个方法
public void reverse()
,它只使用下面的类来反转LinkedList。 因此,给定列表
432 1
,结果应该是
1234

public class LinkedList {

    public Node head = null;

    public class Node {
        public int value;
        public Node next;

        Node(int value, Node next) {
            this.value = value
            this.next = next;
        }
    }
}
我已经成功地编写了这段代码,它可以正常工作

public void reverse() {
    Node tmp = head;
    Node prev = null;
    Node nextNode = null;

    while(tmp != null && tmp.next != null) {
        nextNode = tmp.next;
        tmp.next = prev;
        prev = tmp;
        tmp = nextNode;
    }
    head = prev;
}
问题是:对于一个列表
4321
我得到
234

为什么会这样?

我现在有一个有效的解决方案,它不会抛出任何异常

我只需要删除条件
tmp.next!=空

public void reverse() {
    Node tmp = head;
    Node prev = null;
    Node nextNode = null;

    while(tmp != null) {
        nextNode = tmp.next;
        tmp.next = prev;
        prev = tmp;
        tmp = nextNode;
    }
    head = prev;
}

我已经编写了一个方法,但当它被反转时,我似乎缺少列表中的一个值。我现在尝试删除
tmp.next!=空
,它可以工作。这就是你的意思吗?或者你的意思是我应该在这两个条件之外写一个条件?我只是想给你指出正确的方向。我没有完全想清楚。只需问问自己应该仔细测试哪些“特殊”示例数据。您反转了一个包含4个成员的列表。嗯,0还是1呢?也试试看,如果您的代码没有抛出任何异常,那么它可能已经足够好了;-)@幽灵猫谢谢你朝着正确的方向轻推!