二叉搜索树中的左 Child 之和

Sum of Left Child in a Binary Search Tree

我有以下代码,它用 children.

的总和替换二叉搜索树中的每个节点
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);
    }
}

现在我想修改此代码以仅使用其左侧 children 的总和来更新每个节点。

所以基本上如果这是我的输入树,

   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);
    }
}
int sumOfLeftChildren(Node* root){
    if(!root) return 0;
    sumOfLeftChildren(root->right);
    return root->val += sumOfLeftChildren(root->left);
}