zoukankan      html  css  js  c++  java
  • Sum Root to Leaf Numbers

    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 1->2 represents the number 12.
    The root-to-leaf path 1->3 represents the number 13.
    Return the sum = 12 + 13 = 25.

    Solution: 1. Recursion (add to sum when reaching the leaf).
    2. Iterative solution.

     1 /**
     2  * Definition for binary tree
     3  * struct TreeNode {
     4  *     int val;
     5  *     TreeNode *left;
     6  *     TreeNode *right;
     7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     8  * };
     9  */
    10 class Solution {
    11 public:
    12     int sumNumbers(TreeNode *root) {
    13         int sum = 0;
    14         sumNumberRe(root, 0, sum);
    15         return sum;
    16     }
    17     
    18     void sumNumberRe(TreeNode* root, int num, int &sum)
    19     {
    20         if(!root) return;
    21         num = num * 10 + root->val;
    22         if(!root->left && !root->right) {
    23             sum += num;
    24         }
    25         sumNumberRe(root->left, num, sum);
    26         sumNumberRe(root->right, num, sum);
    27     }
    28 };
  • 相关阅读:
    maven 常用命令
    navicat 破解
    linux命令
    Git常用命令
    关于近期工作的总结
    ES6新特性学习
    Hadoop初步学习
    串行、并行与并发的理解
    通过Spring profile方式实现多环境部署
    使用MySQL乐观锁解决超卖问题
  • 原文地址:https://www.cnblogs.com/zhengjiankang/p/3661760.html
Copyright © 2011-2022 走看看