解题思路:用后序遍历找左孩子,需要注意的是左叶子需要通过其父节点来判断其是不是左叶子
具体代码:
class Solution {
public:
int sumOfLeftLeaves(TreeNode * root) {
if(root==NULL)return 0;
if(root->left==NULL&&root->right==NULL)return 0;
int leftnum=sumOfLeftLeaves(root->left);
if(root->left&&root->left->left==NULL&&root->left->right==NULL){
leftnum=root->left->val;
}
int rightnum=sumOfLeftLeaves(root->right);
int sum=leftnum+rightnum;
return sum;
}
};
题目如下:
给定二叉树的根节点 root ,返回所有左叶子之和。
示例 1:

输入: root = [3,9,20,null,null,15,7] 输出: 24 解释: 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24
示例 2:
输入: root = [1] 输出: 0
本文介绍了如何通过后序遍历的方法,利用递归在二叉树中找到所有左叶子节点并求和。给出一个C++类Solution中的sumOfLeftLeaves函数实现,以及两个示例来说明功能。
146

被折叠的 条评论
为什么被折叠?



