singly-linked-list - 对于单链表,是否总是必须添加一个新节点作为第一个元素?
问题描述
通常在单链表中,是否总是添加一个新元素作为 head.next,也就是作为第一个元素?还是您走到列表的末尾并将其添加到那里?
解决方案
根据斯坦福大学的这个讲座(13:00 分钟后),将步行添加到列表的末尾并在那里添加新节点。这是代码的屏幕截图(C++)
在UC Berkley (Java) 的讲义中,他们将其添加为第一项,但随后他们明确地将其称为 insertFront()
public class SList {
private SListNode head; // First node in list.
private int size; // Number of items in list.
public SList() { // Here's how to represent an empty list.
head = null;
size = 0;
}
public void insertFront(Object item) {
head = new SListNode(item, head);
size++;
}
}
在java框架的LinkedList类中(这是双向链表),add就是添加到链表的末尾。因此,如果您添加 1,然后添加 2,然后添加 3,则 3 将是列表中的最后一项。
简而言之:除非明确称为 addFront(或类似名称),否则在 LinkedList 上添加意味着添加为最后一项。
推荐阅读
- virtual-machine - 在 proxmox 中设置 VM 以通过 wi-fi 连接显示器
- react-native - Reanimated 2:更新状态会导致 animatedProps 中的动画重置,尽管没有更改共享值
- sql - Oracle Sql ORA-02270: 此列列表没有匹配的唯一键或主键
- ios - 在 Xcode 中添加自定义字体
- python - 在 Tkinter 的 Entry 小部件中输入文本时启用按钮
- vba - VBA将输入框中的日期与工作表中的日期进行比较
- python - 如何使用python打开浏览器页面并将其置于顶部
- java - 如何使用硒向下滚动div
- qt - 用于测试文件名是否以后缀结尾的正则表达式:错误结果
- django - 在 object_list 中获取特定字段(例如名称)而不是 pk 以呈现外键