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;
}
Leetcode第404题左叶子之和||C语言
最新推荐文章于 2024-09-21 12:52:41 发布
这段代码主要定义了两个函数,boolIsLeafNode用于判断给定的二叉树节点是否为叶子结点,sumOfLeftLeaves则计算所有左叶子节点的值之和。通过递归遍历二叉树,当遇到叶子结点时将其值累加到结果中。
摘要由CSDN通过智能技术生成