☆方法1:递归
方法2:BFS
class Solution { public int sumOfLeftLeaves(TreeNode root) { /** * 方法1:递归 */ if (root == null) return 0; // 对当前节点进行处理 int count = 0; if (root.left != null && root.left.left == null && root.left.right == null) { count = root.left.val; } // 当前节点 + 其左右子树的 return count + sumOfLeftLeaves(root.left) + sumOfLeftLeaves(root.right); /** * 方法2:BFS */ /*if (root == null) return 0; Queue<TreeNode> queue = new LinkedList<>(); queue.offer(root); int count = 0; while (!queue.isEmpty()) { int size = queue.size(); for (int i = 0; i < size; i++) { TreeNode cur = queue.poll(); if (cur.left != null) { queue.offer(cur.left); // 保证是叶子节点 if (cur.left.left == null && cur.left.right == null) { count += cur.left.val; } } if (cur.right != null) { queue.offer(cur.right); } } } return count; */ } }