将 deque 定义为 LinkedList



我正在使用迭代方法查看代码预购二叉树。看起来他们确实如此:

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

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

相关内容

  • 没有找到相关文章

最新更新