Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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 如何交换反向构建的单链表中的两个节点?_Java_Linked List - Fatal编程技术网

Java 如何交换反向构建的单链表中的两个节点?

Java 如何交换反向构建的单链表中的两个节点?,java,linked-list,Java,Linked List,我已经处理这个问题有一段时间了,似乎无论我做什么,我的输出总是被任意截断或排序。移动引用是否足以交换这两个元素?我试图这样做,如果当前节点的SSN字段大于上一个,则将上一个链接到当前节点。这就是我的代码目前的样子: public void loadRecords() throws FileNotFoundException { Node head = null; Node prev = null; Node curr = null; Scanner fileRe

我已经处理这个问题有一段时间了,似乎无论我做什么,我的输出总是被任意截断或排序。移动引用是否足以交换这两个元素?我试图这样做,如果当前节点的SSN字段大于上一个,则将上一个链接到当前节点。这就是我的代码目前的样子:

public void loadRecords() throws FileNotFoundException {

    Node head = null;
    Node prev = null;
    Node curr = null;
    Scanner fileRead = makeAFile(database);
    fileRead.useDelimiter(";|\n");
    boolean sorted = false;
    while (fileRead.hasNext()) {
        head = new Node(fileRead.next(), fileRead.next(), fileRead.next());
        head.nextOne = prev;

        if (prev != null) {
            for (curr = head; curr != null; curr = curr.nextOne) {
                if ((curr).compareTo(prev) > 0) {

                    head.nextOne = prev.nextOne; //oops, there we go. used to be "head.nextOne = curr.nextOne".
                    prev = head; // not even sure if this is what I want
                    sorted = true;
                } else
                    break;
            }
        }

        if (sorted != true) {
            prev = head;
        }
        sorted = false;
    }
}

你可能需要这样的东西

                Node tmp = head.nextOne
                head.nextOne = prev.nextOne;
                prev.nextOne = tmp;