당신이 문제는 트리의 깊이를 찾아 내고 해결하기 위해 필요한 모든 것 같다 만들고 싶어
|0|
|
|1|
|
|2|
|
|3|
을 다음과 같이 예를 들어 보통의 TreeNode 수준이므로, 그렇게하기 위해서는 간단한 재귀를 사용할 수 있습니다.
사이비 코드 :
public int GetDepth(TreeNode node)
{
return node.Nodes.Count == 0
? node.Level
: node.Nodes.Cast<TreeNode>().Select(this.GetDepth).Max();
}
사용법 :
int GetDepth(Node node)
{
return node.HasChilds ? node.Childs.Max(GetDepth) : node.Level;
}
그리고 C#에서
, 당신은 노드 대표하는 TreeNode를 클래스를 사용하여 가정
var depth = GetDepth(myTree.Root);
그리고 당신이 돈이 ' 모든 노드의 Level 속성을 가지고 있으므로 다음과 같은 매개 변수를 추가하면됩니다.
public int GetDepth(TreeNode node, int depth)
{
return node.Nodes.Count == 0
? depth
: node.Nodes.Cast<TreeNode>()
.Select(x => this.GetDepth(x, depth + 1)).Max();
}
사용법 :
var depth = GetDepth(myTree.Root, 0);