zoukankan      html  css  js  c++  java
  • 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 };
  • 相关阅读:
    winform
    winform窗口应用程序回顾
    API OpengGL属性函数
    API OpengGL几何变换函数
    API OpenGL输出土元函数及相关子程序
    glut进行显示窗口管理(基本API)
    BLL层
    新闻表存贮过程
    重构的数据库助手类
    新闻表操作类
  • 原文地址:https://www.cnblogs.com/hongyang/p/6432067.html
Copyright © 2011-2022 走看看