【发布时间】:2018-10-31 08:59:41
【问题描述】:
我正在使用迭代方法审查代码预排序二叉树。看起来他们这样做了:
Deque
为什么不直接做:
Deque stack = new Deque ();
我没有看到他们在代码中使用了特别来自 LinkedList 的东西。
public class PreOrder {
public static List<Integer> preorderTraversalIterative(TreeNode root) {
List<Integer> preorder = new ArrayList<Integer>();
if (root == null) {
return preorder;
}
Deque<TreeNode> stack = new LinkedList<TreeNode>(); //Why?
stack.offerFirst(root);
while(!stack.isEmpty()) {
TreeNode cur = stack.pollFirst();
if (cur.right != null) {
stack.offerFirst(cur.right);
}
if (cur.left != null) {
stack.offerFirst(cur.left);
}
preorder.add(cur.key);
}
return preorder;
}
}
【问题讨论】:
-
我的错。当我试图编译时。编译器已经抱怨: java.util.List 是抽象的;无法实例化。
标签: java linked-list tree stack deque