计算二叉树权重 java
时间: 2023-09-12 13:07:32 浏览: 99
二叉树的java算法
假设二叉树的节点类定义如下:
```java
class Node {
int value; // 节点权重值
Node left; // 左子节点
Node right; // 右子节点
}
```
可以使用递归的方式计算二叉树的权重,代码如下:
```java
public static int calculateWeight(Node node) {
if (node == null) {
return 0;
}
return node.value + calculateWeight(node.left) + calculateWeight(node.right);
}
```
该方法的基本思路是:对于当前节点,返回其权重值加上左子树的权重值和右子树的权重值之和。如果节点为 null,返回0。
可以通过以下代码来测试:
```java
public static void main(String[] args) {
// 构造一棵二叉树
Node root = new Node();
root.value = 5;
root.left = new Node();
root.left.value = 3;
root.right = new Node();
root.right.value = 8;
root.left.left = new Node();
root.left.left.value = 2;
root.left.right = new Node();
root.left.right.value = 4;
root.right.left = new Node();
root.right.left.value = 6;
root.right.right = new Node();
root.right.right.value = 10;
// 计算二叉树权重
int weight = calculateWeight(root);
System.out.println(weight); // 输出 38
}
```
输出结果为38,符合预期。
阅读全文