gpt4 book ai didi

java - 按字母顺序将节点插入链表

转载 作者:行者123 更新时间:2023-11-29 08:24:22 26 4
gpt4 key购买 nike

我目前正在编写一个将字符串插入链表的程序,但是当它插入字符串时,它会按字母顺序对它们进行排序(使用 compareTo 方法)。我正在尝试涵盖所有可能的边界,并且目前停留在如何插入一个新节点(如果它位于列表的开头)(因此,变量 previous 为空)。这是我到目前为止所拥有的:

public class LinkedList{
private Node root;
private Node tail;

public void add(String data){
Node current = root;
Node previous = null;
Node newNode = new Node(data);
if(root == null){
root = newNode;
tail = root;
newNode.next = null;
return;
}
for( ; current != null; previous = current, current = current.next){
if(newNode.data.compareTo(current.data)<= 0){
break;
}
}
if(previous != null){
newNode.next = current;
previous.next = newNode;
if(current == null) {
tail = newNode;
}
} else{
// if Previous IS null
previous = newNode; //The code that does not work as expected
newNode.next = current;

}
}

public static final void main(String[] args){
LinkedList list = new LinkedList();
// for(int i = 0; i < 10; i++){
// list.add("Item");
// }
list.add("Item1");
list.add("Item2");
list.add("Item4");
System.out.println(list.toString());
list.add("Item3");
System.out.println(list.toString());
list.add("Item3");
System.out.println(list.toString());
list.add("Item0");
System.out.println(list.toString());


}

最佳答案

你只需要插入节点:

  else{ 
// if Previous IS null
newNode.next = root;
root=newNode;
}

关于java - 按字母顺序将节点插入链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54561973/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com