题目描述
计算给定二叉树的所有左叶子之和。
样例
3
/ \
9 20
/ \
15 7
在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24
算法
(DFS)
利用深度优先搜索,递归搜索满足条件为是左叶子的结点并累加其值。
C++ 代码
class Solution {
public:
int dfs(TreeNode* root,int &u){
if(!root)return 0;
if(!root->left&&!root->right)return 0;
if(root->left&&!root->left->left&&!root->left->right)
u+=root->left->val;
dfs(root->left,u);
dfs(root->right,u);
return u;
}
int sumOfLeftLeaves(TreeNode* root) {
int ans=0;
dfs(root,ans);
return ans;
}
};