-1

我有以下代码:

publi       his);
    return ;
}

伤心 我应该如何开始重写我的代码?

4

1 回答 1

4

实现遍历的一个好方法AddRange是简单地使用迭代器块:

public IEnumerable<Node<T>> PostOrder()
{
    List<Node<T>> list = new List<Node<T>>();
    if (Children != null)
    {                
        foreach (var child in Children)
        {
            foreach (var node in child.PostOrder()) {
                yield return node;
            }
        }                
    }

    yield return this;
}

这种处理方式意味着您不必分配包含所有节点的列表;你可以简单地foreach超过结果。如果出于某种原因您确实想要一个列表,那么这也是微不足道的:

var list = node.PostOrder().ToList();
于 2013-07-29T20:05:23.857 回答