力扣404 左叶子之和
题目:
给定二叉树的根节点 root ,返回所有左叶子之和。
示例:

输入: root = [3,9,20,null,null,15,7]
输出: 24
解释: 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24
思路:
一定要注意本题要求的是左叶子之和,是叶子节点的值和。
放上本人写错的左孩子节点之和代码:
class Solution {
int sum=0;
public int sumOfLeftLeaves(TreeNode root) {//1.确定返回值和参数
//2.确定终止条件
if(root.left==null&&root.right==null){
return 0;
}
//3.单层逻辑:sum+=每层左子树之和:后序遍历
if(root.left!=null){
sum+=root.left.val;
sumOfLeftLeaves(root.left);
}
if(root.right!=null){
sumOfLeftLeaves(root.right);
}
return sum;
}
}
暴力一点,找是左叶子的节点,直接加:
class Solution {
public int sumOfLeftLeaves(TreeNode root) {
int sum=0;
if(root==null){
return 0;
}
if(root.left!=null){//左孩子
if(root.left.left==null&&root.left.right==null){//并且是叶子节点
sum+=root.left.val;
}
}
sum+=sumOfLeftLeaves(root.left)+sumOfLeftLeaves(root.right);
return sum;
}
}

浙公网安备 33010602011771号