河南省住房城乡和建设厅网站汕头网站建设
List<TreeNode> list = new ArrayList<TreeNode>();
List<TreeNode> allTrees = new LinkedList<TreeNode>();
这两行代码都是用来创建一个存储多个
TreeNode
对象的列表,但是它们使用的底层实现不同。
ArrayList
是一种数组实现的动态数组,它的底层是一个数组而
LinkedList
是一种链表实现的动态数组,它的底层是一个链表。
两种实现有自己的优缺点:
- ArrayList 查询和访问元素速度快,因为它是通过下标来访问元素的,但插入和删除元素速度比较慢,因为插入和删除元素需要移动整个数组。
- LinkedList 插入和删除元素速度快,因为只需要修改前后元素的指针,但查询和访问元素速度比较慢,因为需要遍历整个链表来找到指定元素。
所以,如果你的列表需要频繁插入和删除元素,那么使用
LinkedList
更好,如果你的列表需要频繁查询和访问元素,那么使用ArrayList
更好。
当遍历了所有可能的树,并且需要频繁插入和删除元素,使用了
LinkedList<TreeNode> allTrees = new LinkedList<TreeNode>();
来存储所有可能的树。这样可以提高插入和删除元素的效率。选择使用ArrayList或LinkedList, 就要根据你的程序需要来考虑,如果需要频繁的遍历元素,建议使用ArrayList,如果需要频繁的插入和删除元素,建议使用LinkedList。
List<TreeNode> list = new ArrayList<TreeNode>();
输出结果:
[1,null,2,null,3,null,4,null,5,null,6]
List<TreeNode> allTrees = new LinkedList<TreeNode>();