算法思路:用递归实现该算法。如果二叉树为空,则返回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
本文介绍了如何用C#编写一个递归函数来计算二叉树的深度。算法思路是:当二叉树为空时返回0,只包含根节点时返回1,否则返回根节点左右子树深度的较大值加1。示例代码展示了从创建二叉树到调用函数计算深度的完整过程。
908

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



