Find the sum of all left leaves in a given binary tree.
Example:
3 / \ 9 20 / \ 15 7There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24. 题意:给定一颗二叉树,返回该二叉树的左叶子结点的和 思路:层次遍历,然后判断每个结点是否包含左叶子结点,如果存在左叶子结点则加进sum,代码如下:
public int sumOfLeftLeaves(TreeNode root) { if(root == null) return 0; int sum = 0; Queueq = new LinkedList<>(); q.offer(root); while(!q.isEmpty()){ TreeNode t = q.poll(); sum += isLeftLeaf(t); if(t.left != null){ q.offer(t.left); } if(t.right != null){ q.offer(t.right); } } return sum; } public int isLeftLeaf(TreeNode t){ if(t.left != null){ if(t.left.left == null && t.left.right == null) return t.left.val; } return 0; }