算法思路:用递归实现该算法。如果二叉树为空,则返回0;如果二叉树只有一个结点(根结点),返回1,否则返回根结点的左分支的深度与右分支的深度中较大者加1。 based 《数据结构 C#语言版》
C# codes as below:
class Program
{
static void Main(string[] args)
{
TreeNode node1 = new TreeNode("1");
TreeNode node2 = new TreeNode("2");
TreeNode node3 = new TreeNode("3");
TreeNode node4 = new TreeNode("4");
TreeNode node5 = new TreeNode("5",node1,node2);
TreeNode node6 = new TreeNode("6", node5, node3);
TreeNode node7 = new TreeNode("7", node6);
TreeNode node8 = new TreeNode("8", node4, node7);
TreeNode node9 = new TreeNode("9", null, node8);
Console.WriteLine(DepthCount(node9));
Console.ReadKey();
}
static int DepthCount(TreeNode rootNode)
{
if (rootNode == null)
{
return 0;
}
else if (rootNode.LeftSon == null && rootNode.RightSon == null)
{
return 1;
}
else
{
int leftDepth = DepthCount(rootNode.LeftSon);
int rightDepth = DepthCount(rootNode.RightSon);
return leftDepth > rightDepth ? leftDepth + 1 : rightDepth + 1;
}
}
}
class TreeNode
{
public TreeNode LeftSon { get; set; }
public TreeNode RightSon { get; set; }
public string Value { get; set; }
public TreeNode(string value = null, TreeNode leftSon=null, TreeNode rightSon=null)
{
this.LeftSon = leftSon;
this.RightSon = rightSon;
this.Value = value;
}
}
output results:
6
907

被折叠的 条评论
为什么被折叠?



