image.png
    此题加上一些限制条件,我们只需要稍加改变即可,首先就是我们只求叶子节点之和(左孩子右孩子为空就可以判断是否为叶子节点),然后需要判断是否是左边的叶子节点,所以我们只需要判断每个节点左边节点是否为空,如果不为空是否为叶子节点,如果成立我们就返回这个左孩子的值再加上向右边孩子进行递归计算的值(右孩子中也有可能有左叶子节点)。

    /

    1. public int sumOfLeftLeaves(TreeNode root) {
    2. if (root == null)
    3. return 0;
    4. if (root.left != null && root.left.left == null && root.left.right == null)
    5. return sumOfLeftLeaves(root.right) + root.left.val;
    6. return sumOfLeftLeaves(root.right) + sumOfLeftLeaves(root.left);
    7. }