二叉树根节点到叶子节点的所有路径和(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/难度中等)的主要内容,如果未能解决你的问题,请参考以下文章
二叉树根节点到叶子节点和为指定值的路径(NC8/考察次数Top54/难度中等)