public void Convert(Node)
{
StartGrouping();
DoSomething();
int childCount = node.GetChildCount();
for (int i = 0; i < childCount; i++)
{
Convert(node.GetChild(i));
}
if(last_node)
{
EndGrouping();
}
}
检查我们何时到达最后一个节点的正确方法是什么(如图所示)。
答案 0 :(得分:0)
如果你想找到没有子节点的最后一个节点:即找到当前级别的最后一个节点,如果它有子节点则更深,否则返回它,那么你可以轻松地做到:
private Node FindLast(Node[] nodes)
{
var node = nodes.GetLast();
if (node.HasChildren())
{
return FindLast(node.GetChildren());
}
return node;
}