题解 | #二叉树根节点到叶子节点的所有路径和#

二叉树根节点到叶子节点的所有路径和

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;
    }
};
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务