找到Deepest孩子Treenode的水平

San*_*ile 4 c# recursion treenode winforms

我有treenode,我想在treenode找到最深的孩子.如果有2个带有level 11&的子节点,level 13那么我需要将函数返回给我13.

我怎样才能做到这一点 ?

public int FindLevel(TreeNode oParentNode)
{
   counter++;
  forech(TreeNode oSubNode in oParentNode.Nodes)
  {
    FindLevel(oParentNode);
  }

 return Counter;
}
Run Code Online (Sandbox Code Playgroud)

Fis*_*aen 8

以下是我对你的建议:

private int GetDeepestChildNodeLevel(TreeNode node)
{
    var subLevel = node.Nodes.Cast<TreeNode>().Select(GetDeepestChildNodeLevel);
    return subLevel.Count() == 0 ? 1 : subLevel.Max() + 1;
}
Run Code Online (Sandbox Code Playgroud)

这里有明确的类型:

private int GetDeepestChildNodeLevel(TreeNode node)
{
    var subLevel = node.Nodes.Cast<TreeNode>().Select<TreeNode, int>(subNode => GetDeepestChildNodeLevel(subNode));
    return subLevel.Count<int>() == 0 ? 1 : subLevel.Max() + 1;
}
Run Code Online (Sandbox Code Playgroud)