我做了很多搜索,但现有的解决方案都没有解决我的确切问题。我有一个清单:
Input[] inputs = new Input[]
{
new Input(1),
new Input(3,1),
new Input(19,3),
new Input(22,1),
new Input(4,1),
new Input(5,22),
};
下面是 BuildTree() 的声明,它目前不起作用:
public TreeNode BuildTree(IEnumerable<Input> inputs, TreeNode parentNode = null)
{
List<Input> nodes = inputs.ToList<Input>();
foreach (Input node in nodes)
{
TreeNode newNode = new TreeNode(node.Id);
if (parentNode == null)
{
parentNode = BuildTree(nodes, newNode);
}
else
{
parentNode.AddChild(newNode);
}
}
return parentNode;
}
这是对 BuildTree 的调用:
TreeNode rootNode = BuildTree(inputs);
所以 BuildTree 函数必须在构建后返回树的根。我试过循环输入。我尝试在每次迭代时从列表中删除第一个输入。我不太明白。任何帮助将不胜感激!谢谢!