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 37 38 39 40 41 42 43 44 45
|
class Solution { public int pathSum(TreeNode root, int sum) { if(root == null)return 0; Queue<TreeNode> que = new LinkedList(); int res = 0; que.offer(root); while(! que.isEmpty()){ TreeNode node = que.poll(); int tnum = helper(node, sum); res += tnum; if(node.left != null) que.offer(node.left); if(node.right != null) que.offer(node.right); } return res; } private int helper(TreeNode node, int sum){ if(node == null) return 0; if(sum - node.val == 0) return helper(node.left, sum - node.val) + helper(node.right, sum - node.val) + 1; else return helper(node.left, sum - node.val) + helper(node.right, sum - node.val); } }
============= public class Solution { public int pathSum(TreeNode root, int sum) { if (root == null) return 0; return pathSumFrom(root, sum) + pathSum(root.left, sum) + pathSum(root.right, sum); } private int pathSumFrom(TreeNode node, int sum) { if (node == null) return 0; return (node.val == sum ? 1 : 0) + pathSumFrom(node.left, sum - node.val) + pathSumFrom(node.right, sum - node.val); } }
|
近期评论