Java 如果链表不为空,如何按升序添加元素
如何按升序添加不同的元素假设我的列表中已经存在5个不同的元素,并且我想在现有列表中添加新值Java 如果链表不为空,如何按升序添加元素,java,linked-list,Java,Linked List,如何按升序添加不同的元素假设我的列表中已经存在5个不同的元素,并且我想在现有列表中添加新值 void add(int e) { Node nNode = new Node(); nNode.element = e; nNode.next = null; if (head == null) { head = nNode; } else { Node tNode = head; while (tNode.nex
void add(int e) {
Node nNode = new Node();
nNode.element = e;
nNode.next = null;
if (head == null) {
head = nNode;
} else {
Node tNode = head;
while (tNode.next != null && head.element>e) {
head=nNode;
nNode.next=tNode;
tNode = tNode.next;
}
tNode.next = nNode;
}
这是一个与java相关的问题,我尝试了很长时间,但对我来说没有效果。
我现在已经更改了算法,但仍然存在问题。它只是对列表最后一个元素的三个元素进行排序。它工作不正常。我想按升序对其进行排序。您没有创建新节点来插入节点。 让我们试试下面的代码
void aAsc(int e)
{
Node node = new Node();
node.element = e;
if(start==null)
{
start = node;
}
Node p=start;
while(p.next!=null){
if(p.next.element>e) {
node.next = p.next;
p.next = node;
break;
}
p=p.next;
}
}
提示:向链表中添加元素需要创建新节点。您没有在发布的代码中创建任何节点。如果创建一个节点不在此部分中,则ifstart==null | | start.element>e{}node tNode;start=t if部分中的节点不是正确的英语。创建节点意味着以某种方式调用节点构造函数:新节点。你发布的代码中没有这样的指令。我已经创建了一个额外的类公共类节点{public int element;Node next;}没有任何构造函数我怎么能做到这一点?我不知道这是否有效,但您可能应该格式化answer@CyberneticTwerkGuruOrc兄弟,我在寻找答案,我正在努力解决这个问题超过10天。我想不使用任何工具来解决它constructor@TayyabGulsherVOhra我的评论实际上是针对这个答案的海报,而不是你。别担心。我们会帮你的