Deepest Leaves Sum
给一个二叉树, 返回最后一层的sum. 这个题我用的是层序扫描.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { int res = 0; public int deepestLeavesSum(TreeNode root) { if(root == null) return res; Queue<TreeNode> q = new LinkedList<>(); q.add(root); List<TreeNode> list = new ArrayList<>(); while(q.size() != 0) { int size = q.size(); List<TreeNode> tmp = new ArrayList<>(); for(int i = 0; i < size; i++) { TreeNode n = q.poll(); tmp.add(n); if(n.left != null) q.add(n.left); if(n.right != null) q.add(n.right); } list = tmp; } for(TreeNode node : list) res += node.val; return res; } } |