我有一个带有实现此接口的节点的树
接口节点{
public boolean hasChildren(){};
}
如何返回具有相同treeLevel的List列表?
例如,如果我有一个像树的树
1
2 3
4 5 6 7
我将返回一份列表,如{{1} {2,3} {4,5,6,7}}
感谢。
答案 0 :(得分:0)
这基本上是breadth-first traversal,除了在每个级别保存该级别的列表。像这个例子C#代码:
IEnumerable<Node[]> Traverse(Node root) {
Node[] currentLevel = new [] { root };
Node[] nextLevel = null;
while(true) {
nextLevel = currentLevel.SelectMany(n => n.Children).ToArray();
if (nextLevel.Length > 0) {
yield return nextLevel;
currentLevel = nextLevel;
}
else {
break;
}
}
}