思路
0、提示
下面的代码在leetcode上通不过
原因是这样一棵树:
官方给出的答案:4
我给出的答案:6
也许是我对题目理解有问题,或者说[1,2,3,4,5]表示的二叉树不是上面那一棵,我的代码是2+4
1、函数作用
sumOfLeftLeaves函数的作用:给定节点返回以该节点为顶点的二叉树的左叶子之和
2、递归式
root左叶子之和=root左节点val+其左节点为顶点的二叉树的左叶子之和+其右节点为顶点的二叉树的左叶子之和
3、编程思路
若当前节点为空,则返回0
若当前节点非空则返回当前左节点val+当前左节点为顶点的二叉树的左叶子之和+当前右节点为顶点的二叉树的左叶子之和
代码
int sumOfLeftLeaves(struct TreeNode* root){
int ret=0;
if(root==NULL) return ret;
if(root->left!=NULL) ret=root->left->val;
ret+=sumOfLeftLeaves(root->left);
ret+=sumOfLeftLeaves(root->right);
return ret;
}