zoukankan      html  css  js  c++  java
  • sum-root-to-leaf-numbers leetcode C++

    Given a binary tree containing digits from0-9only, each root-to-leaf path could represent a number.

    An example is the root-to-leaf path1->2->3which represents the number123.

    Find the total sum of all root-to-leaf numbers.

    For example,

    1
    


    2 3

    The root-to-leaf path1->2represents the number12. The root-to-leaf path1->3represents the number13.

    Return the sum = 12 + 13 =25.

    C++

    /**
     * Definition for binary tree
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        int sumNumbers(TreeNode *root){
            if(NULL == root) return 0;
            int sum = 0;
            sum  = getSum(root,0);
            //getSum2(root,0,sum);
            return sum;
        }
        void getSum2(TreeNode *root, int num, int &sum){
            num = num * 10 + root->val;
            if(NULL == root->left && NULL == root->right){
                sum += num;
                return;
            }
            if(root->left)
                getSum2(root->left, num, sum);
            if(root->right)
                getSum2(root->right, num, sum);
        }
        int getSum(TreeNode* root, int num){
            num = num * 10 + root->val;
            if(NULL == root->left && NULL == root->right)
                return num;
            int sum = 0;
            if (NULL != root->left) sum += getSum(root->left,num);
            if (NULL != root->right) sum += getSum(root->right,num);
            return sum;
        }
    };
  • 相关阅读:
    Add Binary
    Java笔记之String
    Java笔记之数组
    Merge Two Sorted Lists
    Remove Nth Node From End of List
    Longest Common Prefix
    Roman to Integer
    Palindrome Number
    Reverse Integer
    _cdel stdcall
  • 原文地址:https://www.cnblogs.com/vercont/p/10210248.html
Copyright © 2011-2022 走看看