import java.util.*; public class Solution { public int sumOfLeftLeaves (TreeNode root) { // 预处理 if (root == null) return 0; // 判断当前左子树是否为叶子结点 if (root.left != null && isLeaf(root.left)) { return root.left.val + sumOfLeftLeaves(root.right); } // 若不是,则递归求左右子树的左叶子之和 return sumOfLeftLeaves(root.left) + sumOfLeftLeaves(root.right); } // 判断当前结点是否为叶子结点 public static boolean isLeaf(TreeNode node) { // 预处理 if (node == null) return false; // 没有后继的结点即为叶子结点 return node.left == null && node.right == null; } }