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

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

http://www.nowcoder.com/practice/185a87cd29eb42049132aed873273e83

求二叉树的所有路径,使用先根遍历,递归结束条件为到达叶子节点,同时还要分别递归左子树和右子树之后加入回溯。

/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 * };
 */
#include<numeric>
class Solution {
public:
    /**
     * 
     * @param root TreeNode类 
     * @return int整型
     */
    void dfs(TreeNode* root,vector<string>& result,string& path){
        path.push_back(root->val + 48);
        if(root!=nullptr && root->left==nullptr && root->right==nullptr){
            result.push_back(path);
            return;
        }
        if(root->left){
            dfs(root->left,result,path);
            path.pop_back();
        }
        if(root->right){
            dfs(root->right,result,path);
            path.pop_back();
        }
    }
    
    int sumNumbers(TreeNode* root) {
        if(root==nullptr) return 0;
        vector<string> result;
        string path;
        dfs(root,result,path);
        vector<int> vec{};
        for(auto str: result){
            stringstream s_stream{};
            s_stream<<str;
            int temp{};
            s_stream>>temp;
            vec.push_back(temp);
        }
        int sum=0;
        for(auto x: vec) sum+=x;
        return sum;
    }
};




全部评论

相关推荐

只有一个苍穹外卖外加正在看黑马点评,可以找小厂实习吗,还有我的简历有什么大问题吗
Java抽象小篮子:感觉有点熟悉,问题1是学历,2是没实习经历,3是专业技能写得太少太少了(怎么写可以看我置顶帖),4是仅这一个项目找实习不够看。拷打完毕,简历怎么写可以看我置顶帖子
点赞 评论 收藏
分享
05-27 09:42
门头沟学院 Java
Noe1017:别给这种小丑画面行吗?知道是一坨屎,还要让大家也品尝一下?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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