• 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 };
  • 相关阅读:
    冒泡排序
    最长回文子串
    两个排序数组的中位数
    Manacher算法解析
    绕过校园网WEB认证_iodine实现
    绕过校园网WEB认证_dns2tcp实现
    ajax跨域请求
    Vue实例生命周期
    组件化应用构建
    表单输入绑定
  • 原文地址:https://www.cnblogs.com/xiehongfeng100/p/4631284.html
Copyright © 2020-2023  润新知