В Java Doc они упоминают, что Arraydeque, вероятно, будет быстрее, чем стек при использовании в качестве стека, и быстрее, чем LinkedList, когда используется в качестве очереди. Почему это?/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public List zigzagLevelOrder(TreeNode root) {
if (root == null) return new ArrayList();
List result = new ArrayList();
Queue q = new LinkedList();
q.offer(root);
int level = 1;
while (!q.isEmpty()) {
int size = q.size();
List list = new ArrayList();
for (int i = 0; i < size; i++) {
TreeNode node = q.poll();
if (level%2 == 1) {
list.add(i, node.val);
}else {
list.add(0, node.val);
}
if (node.left != null) q.offer(node.left);
if (node.right != null) q.offer(node.right);
}
level++;
result.add(list);
}
return result;
}
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... linkedlist
Arraydeque не быстрее, чем LinkedList ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение