计算给定二叉树的所有左叶子之和。
示例:
3
/ \
9 20
/ \
15 7
在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24
计算模块C语言代码:
int flag; //定义全局变量,用于判断左右子树标志位
int sumOfLeftLeaves(struct TreeNode* root)
{
int Le,Re;
if(root==NULL)
return 0;
if(flag&&root->left==NULL&&root->right==NULL) //左叶子返回数据域
return root->val;
flag=1; //遍历左子树,标志位置1
Le=sumOfLeftLeaves(root->left);
flag=0; //遍历右子树,标志位置0
Re=sumOfLeftLeaves(root->right);
return Le+Re; //返回左右子树之后
}