sum-root-to-leaf-numbers leetcode C++

mac2022-06-30  79

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; } };

 

转载于:https://www.cnblogs.com/vercont/p/10210247.html

最新回复(0)