題目: LeetCode - 129. Sum Root to Leaf Numbers

題目說明

給一個 Binary Tree,從樹根到每片葉子中間包含的數字代表一串十進位的數字,求總和。

類似題目:LeetCode - 1022 解題紀錄 / September LeetCoding Challenge Day 8

解題思路

使用遞迴的概念遍歷整棵樹,sum 紀錄到目前的十進位總和,若是目前的 node 已經是葉子,直接回傳 sum,否則回傳 sumNumbers(root->left, sum) + sumNumbers(root->right, sum)

參考解法

1
2
3
4
5
6
7
8
9
class Solution {
public:
int sumNumbers(TreeNode* root, int sum = 0) // add sum
{
if(!root) return 0;
sum = sum * 10 + root->val;
return !root->left && !root->right ? sum : sumNumbers(root->left, sum) + sumNumbers(root->right, sum);
}
};