1

私は多くの検索を行ってきましたが、既存のソリューションのどれも正確な問題を解決していません。リストがあります:

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 関数は、ツリーを構築した後にツリーのルートを返す必要があります。入力をループしてみました。各反復でリストから最初の入力を削除しようとしました。私はそれを理解することはできません。どんな助けでも大歓迎です!ありがとうございました!

4

1 に答える 1