我有以下代码,它将二叉搜索树中的每个节点替换为其子节点的总和。
public static void sumofChild(Node root) {
if (root == null) return;
sumofChild(root.getLeft());
sumofChild(root.getRight());
if (root.getLeft() != null) {
int sum = root.getData() + root.getLeft().getData();
root.setData(sum);
}
if (root.getRight() != null) {
int sum = root.getData() + root.getRight().getData();
root.setData(sum);
}
}
现在我希望修改此代码以仅使用其左子节点的总和来更新每个节点。
所以本质上如果这是我的输入树,
12
9 14
7 10 13 17
输出树需要是,
28
16 27
7 10 13 17
我似乎无法正确理解。任何帮助表示赞赏。
最佳答案
public static void sumofChild(Node root) {
if (root == null) return;
sumofChild(root.getLeft());
sumofChild(root.getRight());
if (root.getLeft() != null) {
int sum = root.getData() + root.getLeft().getData();
root.setData(sum);
}
}
关于java - 二叉搜索树中左子节点的和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38439667/