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 };
  • 相关阅读:
    UVA 10608 Friends
    UVA 10806 Dijkstra, Dijkstra.
    HDU 3715 Go Deeper
    poj1315
    poj1383
    poj1650
    poj1265
    poj1523
    RedHat9.0虚拟机安装
    注册DirectShow filter时应该注意中文路径
  • 原文地址:https://www.cnblogs.com/xiehongfeng100/p/4631284.html