链表的开始为何是addfirst,为何不是addlast()

来源:4-4 链表的遍历,查询和修改

玉滨123

2019-01-10

按照我的理解,在插入数据中是按照addfirst插入的,只是因为事先在设置重写toString的->,只是为了排版好看而已!

如果按照addlast插入是不是也可以呢!

总结,我总觉得刚开始建立链表时,不是应该从最后插入吗(既用addlast)?

老师这样设置,难道是规定的语法就是这样吗?

写回答

1回答

liuyubobobo

2019-01-10

因为对于我们实现的链表,在数据头插入容易:)


我们的链表类里有指向head的头指针,使用O(1)的复杂度就可以直接在链表头插入新节点。但是要想在链表尾插入节点,就需要遍历整个链表到最后的位置,然后再插入新元素,时间复杂度就是O(n)的了:)

1
1
玉滨123
好的 谢谢bo哥!理解理解 从链表尾插入 还要for循环找到最后一个!!这样时间复杂度变O(n)。。总是是可以插链尾的,只不过没有链头插入的好!
2019-01-10
共1条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程