首页 > 其他分享 >129. 求根节点到叶节点数字之和

129. 求根节点到叶节点数字之和

时间:2023-07-07 21:12:52浏览次数:46  
标签:cur int back 求根 path 129 root 节点

给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。
每条从根节点到叶节点的路径都代表一个数字:

例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。
计算从根节点到叶节点生成的 所有数字之和 。

叶节点 是指没有子节点的节点。


输入:root = [1,2,3]
输出:25
解释:
从根到叶子节点路径 1->2 代表数字 12
从根到叶子节点路径 1->3 代表数字 13
因此,数字总和 = 12 + 13 = 25

> 代码


class Solution {
private:
    int result;
    vector<int> path;
    // 把vector转化为int
    int vectorToInt(const vector<int>& vec) {
        int sum = 0;
        for (int i = 0; i < vec.size(); i++) {
            sum = sum * 10 + vec[i];
        }
        return sum;
    }
    void traversal(TreeNode* cur) {
        if (!cur->left && !cur->right) { // 遇到了叶子节点
            result += vectorToInt(path);
            return;
        }

        if (cur->left) { // 左 (空节点不遍历)
            path.push_back(cur->left->val);     // 处理节点
            traversal(cur->left);               // 递归
            path.pop_back();                    // 回溯,撤销
        }
        if (cur->right) { // 右 (空节点不遍历)
            path.push_back(cur->right->val);    // 处理节点
            traversal(cur->right);              // 递归
            path.pop_back();                    // 回溯,撤销
        }
        return ;
    }
public:
    int sumNumbers(TreeNode* root) {
        path.clear();
        if (root == nullptr) return 0;
        path.push_back(root->val);
        traversal(root);
        return result;
    }
};

标签:cur,int,back,求根,path,129,root,节点
From: https://www.cnblogs.com/lihaoxiang/p/17536070.html

相关文章

  • 如何让3D力导向图中具有不同属性的子节点连接长度不同?
    引用3D力导向图是一种可视化数据结构的方法,它可以帮助我们更好地理解和分析数据。在3D力导向图中,节点之间的连接长度通常是相等的,但是在某些情况下,我们可能希望连接长度不同,以便更好地展示节点之间的关系。本文将介绍如何在3D力导向图中实现具有不同属性的子节点连接长度不同。示......
  • 使用docker-compose部署mysql单节点
    前提条件:确保服务器都安装了docker以及docker-compose服务......
  • LightDB支持从节点转发DML
    LightDB,是一个EnterprisePostgres,恒生电子生产.它在22.1(2022Q1)版引入一个实验性功能,standby(从节点)可接受写数据请求,转发给主节点处理;如果是只读请求,在standby执行.在ligitdb.conf的shared_preload_libraries选项后面添加lt_standby_forward以加载插件,如:sha......
  • 列表转树结构,获取节点到根的路径
    列表转树结构逻辑上呈树结构的数据,诸如菜单,省市区,在数据库中单表存放,Java程序从数据库中读取出来这些数据时,是列表形式。列表转树结构使用双层for循环实现:/***节点组成树形结构,返回森林**@paramlist节点列表*@parampredicate定义树的根......
  • cellos.20221115_030623类似的目录撑爆存储节点的root文件系统
    1、某Exadata客户,其中一个存储节点的根文件系统使用率超过90%,使用如下命令检查是哪些目录占用空间#du-sm*|sort-rn|head发现是/var/log目录下的东西占用大量空间。2、在/var/log目录下,存在大量cellos开头,但以日期结果的目录,这些目录占用大量磁盘空间。如下所示:drwxr-----7......
  • java后台删除当前节点及其子节点-递归
    一、表设计 二、entityimportcom.fasterxml.jackson.annotation.JsonIgnore;importcom.joyoung.cloud.security.common.entity.BaseEntity;importio.swagger.annotations.ApiModel;importio.swagger.annotations.ApiModelProperty;importlombok.Data;importlombok......
  • nodeselector 节点选择---马哥教育
    创建一个将被调度到你选择的节点的Pod 此Pod配置文件描述了一个拥有节点选择器 disktype:ssd 的Pod。这表明该Pod将被调度到有 disktype=ssd 标签的节点。https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/assign-pods-nodes/ kubectl apply ......
  • 【LeetCode剑指offer#05】回文链表的两种解法+删除链表中间节点(链表的基本操作)
    回文链表给你一个单链表的头节点head,请你判断该链表是否为回文链表。如果是,返回true;否则,返回false。示例1:输入:head=[1,2,2,1]输出:true示例2:输入:head=[1,2]输出:false提示:链表中节点数目在范围[1,105]内0<=Node.val<=9思路将值复制到数组中后用双指针......
  • 【leetcode】【1474】【删除链表 M 个节点之后的 N 个节点】
    c++第一个方法#include<algorithm>#include<iostream>#include<memory>#include<vector>//Definitionforsingly-linkedlist.structListNode{intval;ListNode*next;ListNode():val(0),next(nullptr){}Li......
  • Linux索引节点(Inode)用满导致空间不足
    1、问题:在创建新目录和文件是提示“nospaceleftondevice”!按照以前的情况,很有可能是服务器空间又被塞满了,通过命令查看,发现还有剩余。再用df-i查看了一下/分区的索引节点(inode),发现已经用满(已用=100%),导致系统无法创建新目录和文件。2、问题原因分析:Inode译成中文就是索引节......