描述
累加一棵树的左叶子结点的值。
输入
输出
24 (9+15)
解决思路
root->left && !(root->left->right) && !(root->left->left)用来判断是否是左叶子结点。递归函数返回的为
f(该节点左孩子)+ f(该节点右孩子)的形式。
代码1
2
3
4
5
6
7
8
9
10
11
12
13class Solution {
public:
int sumOfLeftLeaves(TreeNode* root) {
int res = 0;
if (root == NULL) { return 0; }
//left leave.
if (root->left && !(root->left->left) && !(root->left->right)) {
res = root->left->val;
}
res += sumOfLeftLeaves(root->left) + sumOfLeftLeaves(root->right);
return res;
}
};
参考资料
原题链接