代码改变世界

Sum Root to Leaf Numbers

2015-04-01 13:58  笨笨的老兔子  阅读(169)  评论(0编辑  收藏  举报

一个二叉树从根到叶子组成一个数字,求所有数字的和

例子:
1
/ \
2 3
有两个数字,12和13,和即25
用递归方法,每到叶子节点即返回,逐层将结果返回即可

  1. class Solution {
  2. public:
  3. int sumNumbers(TreeNode *root) {
  4. int sum = 0;
  5. sum = sumTree(root,sum);
  6. return sum;
  7. }
  8. int sumTree(TreeNode* node, int sum)
  9. {
  10. if (node==NULL)
  11. return 0;
  12. sum = node->val + sum * 10;
  13. if (!node->left && !node->right)
  14. {
  15. return sum;
  16. }
  17. int x = sumTree(node->left, sum);
  18. x += sumTree(node->right, sum);
  19. return x;
  20. }
  21. };