public class Solution {
    int sum = 0;
    public int sumOfLeftLeaves (TreeNode root) {
        // write code here
        dfs(root, false);
        return sum;
    }
    void dfs(TreeNode root, Boolean isLeft){
        if(root != null){
            dfs(root.left, true);
            dfs(root.right, false);
            if(root.left == null && root.right == null && isLeft){
                sum += root.val;
            }
        }
    }
}

深度优先遍历,root.left == null && root.right == null判断叶子结点、isLeft标记左。