我正在使用迭代方法检查代码预排序二叉树。看起来他们是这样的:
Deque
为什么不这样做:
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;
}
}
最佳答案
Deque
是一个接口(interface);如果不提供其抽象
方法的所有实现,则无法实例化它,而LinkedList
已经做到了这一点。
关于java - 将 Deque 定义为 LinkedList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50453328/