Я много раз искал, но ни одно из существующих решений не решило мою точную проблему. У меня есть список:Построение дерева из списка с помощью рекурсии
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 функция должна вернуть корень дерева после его создания. Я пробовал перебирать входные данные. Я попытался удалить первый вход из списка с каждой итерацией. Я не могу это понять. Любая помощь будет принята с благодарностью! Спасибо!
так, это multileved дерево, и что именно ваша проблема (или то, что не работает?) – Noctis
показать нам свой класс «» вход «» слишком – jhyap