Leetcode第404题左叶子之和||C语言

这段代码主要定义了两个函数,boolIsLeafNode用于判断给定的二叉树节点是否为叶子结点,sumOfLeftLeaves则计算所有左叶子节点的值之和。通过递归遍历二叉树,当遇到叶子结点时将其值累加到结果中。
摘要由CSDN通过智能技术生成
bool IsLeafNode(struct TreeNode *root){//用于判断是否是叶子结点
    if(root!=NULL&&root->right==NULL&&root->left==NULL)
    //结点非空且左右子树为空,则为叶子结点
        return true;
    else  return false;
}

int sum(struct TreeNode *root){//用于计算左叶子之和,也可以不用单独写这个函数
    if(root==NULL)
        return 0;
    int valsum=0;
    if(IsLeafNode(root->left))//如果左子树是叶子结点,则把值加到sum中
        valsum+=root->left->val;
    else//否则递归调用sum函数
        valsum+=sum(root->left);
    if(!IsLeafNode(root->right))//右子树非叶子结点,则对右子树递归调用函数
        valsum+=sum(root->right);
    return valsum;   
}

int sumOfLeftLeaves(struct TreeNode* root){
    int nums=0;
    nums+=sum(root);
    return nums;
}

执行情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值