• leetcode-129. 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.

    思路:递归,每个节点保存临时和结果,遇到叶子节点就加入总和。

    Acceped Code:

     1 /**
     2  * Definition for a binary tree node.
     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 private:
    12     int sum;
    13 public:
    14     int sumNumbers(TreeNode* root) {
    15         sum=0;
    16         if(root==nullptr)
    17         return 0;
    18         dfs(root,0);
    19         return sum;
    20     }
    21     
    22     void dfs(TreeNode* root,int presum)
    23     {
    24         if(root==nullptr)
    25         return;
    26         if(root->left==nullptr&&root->right==nullptr)
    27         {
    28             sum+=(presum*10+root->val);
    29         }else
    30         {
    31             int temp=presum*10+root->val;
    32             dfs(root->left,temp);
    33             dfs(root->right,temp);
    34         }
    35     }
    36 };
  • 相关阅读:
    Java 老兵不死,Kotlin 蓄势待发
    程序员写代码时戴着耳机,在听什么?
    推荐 7 个提升前端编程效率的 VSCode 插件
    去掉烦人的 !=null
    透析!软件开发未来 10 年的 8 个趋势
    10月01日总结
    09月29日总结
    09月28日总结
    09月27日总结
    09月26日总结
  • 原文地址:https://www.cnblogs.com/hongyang/p/6432067.html
Copyright © 2020-2023  润新知