我有以下填充二叉树(不是 BST)的代码如何获取树的高度并将其连同其高度一起打印?int[] values = new int[] {1, 2, 3, 4, 5};BinaryTree tree = new BinaryTree(values);class BinaryTree{ int value; BinaryTree left; BinaryTree right; public BinaryTree(int[] values) : this(values, 0) {} BinaryTree(int[] values, int index) { Load(this, values, index); } void Load(BinaryTree tree, int[] values, int index) { this.value = values[index]; if (index * 2 + 1 < values.Length) { this.left = new BinaryTree(values, index * 2 + 1); } if (index * 2 + 2 < values.Length) { this.right = new BinaryTree(values, index * 2 + 2); } } int getDepth() { //code to get height here }}
1 回答
吃鸡游戏
TA贡献1829条经验 获得超7个赞
您需要遍历所有节点并检查高度;
depth = 1 + max(left.depth, right.depth)
无论如何,您需要检查是否为空。
C#代码:
return 1 + Math.Max(left?.getDepth() ?? 0, right?.getDepth() ?? 0)
- 1 回答
- 0 关注
- 105 浏览
添加回答
举报
0/150
提交
取消