private int TailDepth(NodeEntity arg) { int ret = arg.GetDepth(); foreach (NodeEntity c in arg.GetChildren()) { int cd = TailDepth(c); if (ret < cd) { ret = cd; } } return(ret); }