gpt4 book ai didi

java - 在常数时间内添加到单链表的末尾

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:18:09 26 4
gpt4 key购买 nike

我正在尝试编写一种在恒定时间内在单链表末尾添加的方法。我不知道如何在恒定时间内将指针分配给列表中的最后一个节点。此方法在 0(n) 中运行:

public void insertEnd(Object obj) {
if (head == null) {
head = new SListNode(obj);
} else {
SListNode node = head;
while (node.next != null) {
node = node.next;
}
node.next = new SListNode(obj);
}
size++;
}

这是我新方法的开始:

public void addLast(SListNode obj){
//if the list is empty, the new element is head and tail
if(tail == null){
obj.next = null;
head = tail = obj;
}else{ -----> here I'm confused

}
}

这是我的 SList 类:

public class SList {
private SListNode head;
private SListNode tail;
private int size;

public SList() {
size = 0;
head = null;
tail = null;

}

最佳答案

我认为这应该涵盖它:(应该放在 else 中)

tail.next = obj; // have (the current tail).next point to the new node
tail = obj; // assign 'tail' to point to the new node
obj.next = null; // may not be required

关于java - 在常数时间内添加到单链表的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16612177/

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