二叉树根节点到叶子节点的所有路径和(NC5/考察次数Top53/难度中等)

Posted 码农指南

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树根节点到叶子节点的所有路径和(NC5/考察次数Top53/难度中等)相关的知识,希望对你有一定的参考价值。

描述:
给定一个仅包含数字\\ 0-9 0−9 的二叉树,每一条从根节点到叶子节点的路径都可以用一个数字表示。
例如根节点到叶子节点的一条路径是1\\to 2\\to 31→2→3,那么这条路径就用\\ 123 123 来代替。
找出根节点到叶子节点的所有路径表示的数字之和
例如:
在这里插入图片描述
这颗二叉树一共有两条路径,
根节点到叶子节点的路径 1\\to 21→2 用数字\\ 12 12 代替
根节点到叶子节点的路径 1\\to 31→3 用数字\\ 13 13 代替
所以答案为\\ 12+13=25 12+13=25

示例1
输入:
{1,0}
返回值:
10
(题目来自牛客网)

用C++实现如下

class Solution {
public:
    /**
     * 
     * @param root TreeNode类 
     * @return int整型
     */
    int sumNumbers(TreeNode* root) {
        //计算 根节点 到 叶子节点 的所有路径和
        if(!root)
            return 0;
        return preOrder(root,0);           //利用先序遍历求解和公式进行求解;
    }
    
    int preOrder(TreeNode* root, int sum)
    {
        if(!root)
            return 0;
        sum=10*sum+root->val;              //对根节点到叶子节点的表示
        if(!root->left && !root->right)
            return sum;                    //左右都为空了返回
        return preOrder(root->left,sum)+preOrder(root->right,sum);
    }                                      //否则返回左边求解公式和右边求解公式之和
};

纯手撕代码,如果觉得内容不错麻烦点个赞,后面陆续配上Top100算法题通俗易懂的讲解视频,可以花两个月时间完全掌握,进大厂不是梦,转行狗亲测!

以上是关于二叉树根节点到叶子节点的所有路径和(NC5/考察次数Top53/难度中等)的主要内容,如果未能解决你的问题,请参考以下文章

牛客题霸 NC5 二叉树根节点到叶子节点的所有路径和

二叉树根节点到叶子节点和为指定值的路径(NC8/考察次数Top54/难度中等)

C语言 求二叉树根节点到叶子节点的路径

[javascript]二叉树根节点到叶子节点和为指定值的路径

NC 8 二叉树根节点到叶子节点和为指定值的路径

牛客题霸 NC8 二叉树根节点到叶子节点和为指定值的路径