算法思路:用递归实现该算法。如果二叉树为空,则返回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