leetcode每日一道(20)深度优先!二叉树路径代表的数字之和

news/2024/7/20 22:34:18 标签: LeetCode, 深度优先, 二叉树

题目描述

给定一个仅包含数字0-9的二叉树,每一条从根节点到叶子节点的路径都可以用一个数字表示。
例如根节点到叶子节点的一条路径是1->2->3,那么这条路径就用123来代替。
找出根节点到叶子节点的所有路径表示的数字之和
例如:
1↵ / ↵ 2 3
根节点到叶子节点的路径1->2用数字12代替
根节点到叶子节点的路径1->3用数字13代替
所以答案为12+13=25

思路

又是一个深度优先搜索,找到叶子节点之后,就把当前的路径上代表的数加起来。
利用全局变量sum 和cur,不断维护这两个变量即可。注意要适时弹出cur中的元素。

代码

/**
 * Definition for binary tree
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    int sum = 0;
    vector<int> cur;
    int sumNumbers(TreeNode *root) {
        if (!root)
            return 0;
        else{
            dfs(root);
            return sum;
        }
    }
    void dfs(TreeNode *root){
        cur.push_back(root->val);
        if (!root->left && !root->right){
            for (int i=0;i<cur.size();i++){
                sum += pow(10,(cur.size()-i-1))*cur[i];
            }
            return;
        }
        if (root->left){
            dfs(root->left);
            cur.pop_back();
        }
            
        if (root->right){
            dfs(root->right);
            cur.pop_back();
        }

    }
};

http://www.niftyadmin.cn/n/880051.html

相关文章

10个有用的HTML文件上传技巧

上传文件的能力是许多Web和移动应用的关键需求&#xff0c;从将照片上传到社交媒体上到将简历发布到工作门户网站上&#xff0c;文件上传无处不在。 作为一名Web开发人员&#xff0c;我们一定知道HTML提供了原生文件上传的支持&#xff0c;并借助于JavaScript的一点帮助。在HT…

一图看懂TensorFlow2.0系列(一) TensorFlow1.0和TensorFlow2.0究竟有什么区别?

最近集中精力把B站的课程&#xff1a;Google工程师亲授TensorFlow2.0给听完了&#xff0c;是一个大佬讲的课&#xff0c;大佬叫什么正十七来着&#xff0c;我强烈建议大家听一听&#xff0c;可以说是思路清晰&#xff0c;准备充足&#xff0c;代码强悍&#xff0c;深入浅出。。…

微软如何使Edge成为PWA的最佳浏览器

近年来&#xff0c;由于网络巨头和移动开发人员的推动&#xff0c;渐进式Web应用已成为一种增长趋势&#xff0c;因为它们允许将类似原生的体验带入任何平台。 在最致力于这项新技术的公司中&#xff0c;有Microsoft&#xff0c;它通过PWABuilder等项目帮助Web开发人员拥抱了这…

使用CSS ::marker的自定义项目符号

现在&#xff0c;在使用 <ul> 或 <ol> 时自定义数字或项目符号的颜色&#xff0c;大小或类型很简单。 感谢CSS ::marker&#xff0c;我们可以更改内容以及项目符号和数字的某些样式。 文章目录浏览器兼容性伪元素创建一个markermarker样式允许的CSS ::marker属性更…

使用VS Code的REST Client插件进行API调用

原文&#xff1a;https://blog.zhangbing.site 为什么要离开IDE去测试新的API&#xff1f;现在你不必这样做了。 我们如何获取数据 如果你已经做了很长时间的Web开发&#xff0c;你可能知道我们的很多工作都是围绕着数据展开的&#xff1a;读取数据、写入数据、操作数据&…