zoukankan      html  css  js  c++  java
  • LeetCode之“树”: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.

      这道题利用深度优先搜索即可,具体程序(4ms)如下:

     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 public:
    12     int sumNumbers(TreeNode* root) {
    13         int totalSum = 0;
    14         sumNumbersSub(root, 0, totalSum);
    15         return totalSum;
    16     }
    17     
    18     void sumNumbersSub(TreeNode *tree, int sum, int &totalSum)
    19     {
    20         if(!tree)
    21             return;
    22         
    23         sum = sum * 10 + tree->val;
    24         if(!tree->left && !tree->right)
    25         {
    26             totalSum += sum;
    27             return;
    28         }
    29         
    30         sumNumbersSub(tree->left, sum, totalSum);
    31         sumNumbersSub(tree->right, sum, totalSum);
    32     }
    33     
    34 };
  • 相关阅读:
    ASP.NET 自制时间控件
    ORACLE 函数汇总之单记录函数
    Servers IIS 重启命令
    ASP.NET 两个Dropdownlist控件联动
    ASP.NET datagridview控件表头定义
    python Image 安装
    ssh 不需要密码的链接
    [Redis] redis 相关的博客
    [emacs] python代码折叠
    linux python 链接 oracle
  • 原文地址:https://www.cnblogs.com/xiehongfeng100/p/4631284.html
Copyright © 2011-2022 走看看