Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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,我的任务是修改下面的代码,使其在链表中按字母顺序排列新元素。它当前将元素添加到列表的末尾 public void add(String element) { Node newNode = new Node(element); if (first == null) first = newNode; else { // Find the predecessor of the element to add Node current

我的任务是修改下面的代码,使其在链表中按字母顺序排列新元素。它当前将元素添加到列表的末尾

public void add(String element) {
    Node newNode = new Node(element);
    if (first == null)
        first = newNode;
    else {
        // Find the predecessor of the element to add
        Node current = first;
        Node prev = null;
        while (current != null) {
            prev = current;
            current = current.next;
        }
        // New last element 
        if (current == null) 
            prev.next = newNode;
        else if (prev == null) {
            newNode.next = first;
            first = newNode;
        }
    }
}

您需要继续遍历该列表,直到到达的节点的字母顺序大于您要插入的节点

找出在链接列表上遍历代码的位置

while (current != null) {
    prev = current;
    current = current.next;
}
添加一个比较节点元素的条件

while (current != null && current.data < newNode.data) {

这似乎是一项合理的任务。你有问题吗?
else if
阻塞永远不会发生。您只需执行
prev.next=newNode如何按字母顺序对元素排序?我是否使用比较法?
prev.next = newNode
newNode.next = current