【发布时间】:2015-10-23 03:33:22
【问题描述】:
以下是我的 LeetCode 二叉树级顺序遍历问题的代码。它在第 24 行给出了编译错误,因为找不到适合 addAll(List) 的方法,所以我理解这是因为 addAll(Collections c) 没有为抽象类型(即列表)定义,但是当我将 thisLevel 的声明更改为 ArrayList 时,我仍然遇到同样的错误。
为什么以及如何修改以下内容以使其成为有效分配?
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public List<List<Integer>> levelOrder(TreeNode root) {
List<List<Integer>> result=new ArrayList<List<Integer>>();
if(root==null) return result;
LinkedList<TreeNode> parents=new LinkedList<TreeNode>();
List<TreeNode> children=new LinkedList<TreeNode>();
parents.add(root);
List<Integer> thisLevel=new ArrayList<Integer>();
while(parents.size()!=0 || children.size()!=0){
TreeNode p=parents.remove();
thisLevel.add(p.val);
if(p.left!=null) children.add(p.left);
if(p.right!=null) children.add(p.right);
if(parents.size()==0) {
result.addAll(thisLevel);
thisLevel=new ArrayList<Integer>();
parents=children;
children= new LinkedList<TreeNode>();
}
}
return result;
}
}
【问题讨论】:
标签: java inheritance arraylist