【问题标题】:no suitable method found for addAll(List<Integer>)没有找到适合 addAll(List<Integer>) 的方法
【发布时间】: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;
    }
}

LeetCode Question URL

【问题讨论】:

    标签: java inheritance arraylist


    【解决方案1】:

    问题是您试图将List&lt;Integer&gt; 的所有元素添加到List&lt;List&lt;Integer&gt;&gt;。由于Integer 不是List&lt;Integer&gt;,因此无法编译。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-30
      • 2014-08-27
      相关资源
      最近更新 更多