我有以下代码:
publi his);
return ;
}
伤心 我应该如何开始重写我的代码?
实现遍历的一个好方法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();