c_cpp 最低级别的叶节点总和

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 最低级别的叶节点总和相关的知识,希望对你有一定的参考价值。

//https://www.geeksforgeeks.org/sum-leaf-nodes-minimum-level/
#include <bits/stdc++.h>
using namespace std;

struct node {
    int data;
    node *left, *right;
};
node *getNode (int n) {
    node *temp= (node*)malloc(sizeof(node));
    temp->data= n;
    temp->left= temp->right= NULL;
    return temp;
}
int func (node *root) {
    queue<node *> q;
    if (!root)
        return 0;
    if (!root->left && !root->right)
        return root->data;

    int sum=0;
    bool f= 0;

    q.push(root);
    while (f==0) {
        int nc= q.size();
        while (nc-->0) {
            node *temp= q.front();
            q.pop();

            if (!temp->left && !temp->right) {
                sum+= temp->data;
                f= 1;
            }
            else {
                if (temp->left)
                    q.push(temp->left);
                if (temp->right)
                    q.push(temp->right);
            }
        }
    }
    return sum;
}

int main() {
    node* root = getNode(1);
    root->left = getNode(2);
    root->right = getNode(3);
    root->left->left = getNode(4);
    root->left->right = getNode(5);
    root->right->left = getNode(6);
    root->right->right = getNode(7);
    root->left->right->left = getNode(8);
    root->right->left->right = getNode(9);

    cout<<func(root);
}

以上是关于c_cpp 最低级别的叶节点总和的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 2017 中每个级别的递归总和

电视转播

为决策树中的每个数据点找到对应的叶节点(scikit-learn)

在 scikit-learn 中获取 DecisionTreeRegressor 的叶节点的值分布

[LeetCode] Find Leaves of Binary Tree 找二叉树的叶节点

c_cpp 1.两个总和