题解 | #二叉树根节点到叶子节点的所有路径和#
二叉树根节点到叶子节点的所有路径和
http://www.nowcoder.com/practice/185a87cd29eb42049132aed873273e83
遍历+维护当前节点数值。用到了栈的思想,先序修改节点数值,后序还原。
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
class Solution {
public:
/**
*
* @param root TreeNode类
* @return int整型
*/
int total = 0;
int num = 0;
int sumNumbers(TreeNode* root) {
// write code here
if (root) {
num *= 10;
num += root->val;
if (!root->left && !root->right) {
total += num;
}
sumNumbers(root->left);
sumNumbers(root->right);
num -= root->val;
num /= 10;
}
return total;
}
};