这是我的功能签名:
public IList<IList<int>> LevelOrder(TreeNode root)
以下是显示如何创建从函数返回的IList<IList<int>>
的代码段:
IList<IList<int>> result = new List<List<int>>();
result.Add(new List<int>());
while (completeQueue.Count != 0)
{
current = completeQueue.Dequeue();
if (level != current.level)
{
result.Add(new List<int>());
level = current.level;
}
result[level].Add(current.node.val);
}
return result;
运行此函数时,我从最后一行(return result
)中收到错误消息:
Line 49: Char 36: error CS0266: Cannot implicitly convert type 'System.Collections.Generic.List<System.Collections.Generic.List<int>>' to 'System.Collections.Generic.IList<System.Collections.Generic.IList<int>>'. An explicit conversion exists (are you missing a cast?) (in Solution.cs)
List
实现IList
接口。为什么这行不通?
答案 0 :(得分:0)
您返回IList<List<int>>
而不是IList<IList<int>>
。
此类型不同,因为您的List<List<int>>
实现了IList<List<int>>
,而不是IList<IList<int>>
。
您应该使用:
var result = new List<IList<int>>();