【问题标题】:Define a Deque into LinkedList [duplicate]在LinkedList中定义一个双端队列[重复]
【发布时间】:2018-10-31 08:59:41
【问题描述】:

我正在使用迭代方法审查代码预排序二叉树。看起来他们这样做了:

Deque stack = new LinkedList();

为什么不直接做:

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


【解决方案1】:

Deque是一个接口;如果不为其abstract 方法的所有 提供实现,就无法实例化它,LinkedList 已经这样做了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-07
    • 2015-04-03
    • 2018-07-02
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    相关资源
    最近更新 更多