返回树的左叶子节点值的和

bool isleaf(struct TreeNode* root)  //这个函数看这个节点是不是叶子结点
{
    if(root==NULL)
    return false;
    return root->left==NULL&&root->right==NULL;
}

int sumOfLeftLeaves(struct TreeNode* root)   //是左叶子节点就相加的函数
{
    if(root==NULL)                            //树空返回0
    return 0;
    if(isleaf(root->left))
    return root->left->val+sumOfLeftLeaves(root->right);    //如果左节点是叶子结点就返回左节点的值加上递归右节点的值
    else 
    return sumOfLeftLeaves(root->left)+sumOfLeftLeaves(root->right);  //如果左节点不是叶子结点,递归访问该节点的左右节点
}

猜你喜欢

转载自blog.csdn.net/m0_47575628/article/details/108970141