Given a binary tree containing digits from
0-9
only, each root-to-leaf path could represent a number.
An example is the root-to-leaf path
1->2->3
which represents the number 123
.
Find the total sum of all root-to-leaf numbers.
For example,
1 / \ 2 3
The root-to-leaf path
The root-to-leaf path
1->2
represents the number 12
.The root-to-leaf path
1->3
represents the number 13
.
Return the sum = 12 + 13 =
比较简单的树的遍历问题,主要就是找到叶子节点然后返回值。
25
.public int sumNumbers(TreeNode root) { if(root == null) return 0; return sumNumbers(root, 0); } public int sumNumbers(TreeNode root, int num) { if(root.left == null && root.right == null) { return num*10 + root.val; } else if(root.left == null && root.right != null) { return sumNumbers(root.right, num*10+root.val); } else if(root.left != null && root.right == null) { return sumNumbers(root.left, num*10+root.val); } else { return sumNumbers(root.left, num*10+root.val) + sumNumbers(root.right, num*10+root.val); } }
没有评论:
发表评论