在 LinkedList 中定义一个双端队列

Define a Deque into LinkedList

我正在使用迭代方法审查代码预序二叉树。看起来像:

Dequestack=new LinkedList();

为什么不这样做:

Dequestack=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;
  }
} 

Deque是接口;如果不为其 abstract 方法的 all 提供实现,则无法实例化它,而 LinkedList 已经这样做了。