力扣 求根到叶子节点数字之和

题目描述

给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。

例如,从根到叶子节点路径 1->2->3 代表数字 123。

计算从根到叶子节点生成的所有数字之和。

说明: 叶子节点是指没有子节点的节点。

示例 1:

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

输入: [4,9,0,5,1]
4
/
9 0
/
5 1
输出: 1026
解释:
从根到叶子节点路径 4->9->5 代表数字 495.
从根到叶子节点路径 4->9->1 代表数字 491.
从根到叶子节点路径 4->0 代表数字 40.
因此,数字总和 = 495 + 491 + 40 = 1026.

要点分析

用一个变量记录当前节点的值, 然后先序遍历二叉树, 遍历过程中有下面三种情况:

  1. 当前节点的左右孩子节点均为空节点. 此时说明该节点为叶子节点, 需要将其值加到ans中
  2. 当前节点的左孩子节点不为空节点. 此时更新该节点的左孩子节点对应的值,并递归访问左孩子节点
  3. 当前节点的右孩子节点不为空节点. 此时更新该节点的右孩子节点对应的值,并递归访问右孩子节点

AC代码:

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {public:
int ans=0;
void preorder(TreeNode *root,int cur_val)
{int cur;//注意此处要建立一个新的变量,防止后面因为改动值导致原cur_val的值发生变化从而影响第三个if中值的更新if (root->right == nullptr&&root->left==nullptr) {ans+=cur_val;return;}if(root->left!=nullptr){cur=cur_val*10+root->left->val;preorder(root->left,cur);}if(root->right!=nullptr){cur=cur_val*10+root->right->val;preorder(root->right,cur);}    }int sumNumbers(TreeNode* root) {if(root==nullptr) return 0;preorder(root,root->val);return ans;}
};

力扣 求根到叶子节点数字之和相关推荐

  1. 力扣解题——求根到叶子节点数字之和

    难度:中等 题目:给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字. 例如,从根到叶子节点路径 1->2->3 代表数字 123. 计算从根到 ...

  2. 叶子结点和分支节点_leetcode No.129 求根到叶子节点数字之和

    题目链接: 求根到叶子节点数字之和 - 力扣(LeetCode)​leetcode-cn.com 题目描述: 给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个 ...

  3. 10.13(129. 求根到叶子节点数字之和 130. 被围绕的区域)

    129. 求根到叶子节点数字之和(通过) 思路:递归,前序遍历的应用 效率:100% 程序代码: /*** Definition for a binary tree node.* struct Tre ...

  4. LeetCode 129. 求根到叶子节点数字之和(DFS)

    1. 题目 给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字. 例如,从根到叶子节点路径 1->2->3 代表数字 123. 计算从根到叶子节 ...

  5. leetcode -- 129. 求根到叶子节点数字之和

    给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字. 例如,从根到叶子节点路径 1->2->3 代表数字 123. 计算从根到叶子节点生成的所有 ...

  6. 【Leetcode | 42】129. 求根到叶子节点数字之和

    给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字. 例如,从根到叶子节点路径 1->2->3 代表数字 123. 计算从根到叶子节点生成的所有 ...

  7. leetcode 129. 求根到叶子节点数字之和(先序遍历)

    给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字.例如,从根到叶子节点路径 1->2->3 代表数字 123.计算从根到叶子节点生成的所有数字 ...

  8. leetcode129. 求根到叶子节点数字之和(dfs)

    给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字.例如,从根到叶子节点路径 1->2->3 代表数字 123.计算从根到叶子节点生成的所有数字 ...

  9. leetcode129. 求根到叶子节点数字之和

    给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字. 例如,从根到叶子节点路径 1->2->3 代表数字 123. 计算从根到叶子节点生成的所有 ...

最新文章

  1. 8.1shell介绍 8.2命令历史 8.3命令补全和别名 8.4通配符 8.5输入输出重定向
  2. Android开发--Http操作介绍(一)
  3. Redis 注册为 widows 服务
  4. 带你反编译APP然后重新打包「MacOS」
  5. html前端如何缓存页面,Nuxt中如何做页面html缓存
  6. [转载] TensorFlow2.0 学习 线性回归
  7. python 字符串 变量_Python检查变量是字符串
  8. python3入门与进阶 网盘_python3入门与进阶(二)
  9. Qt QString 与 const char* 类型的转换
  10. 用request.getParameterMap()获得jsp页面元素的集合出现[Ljava.lang.String;@的问题解决
  11. 大话数据结构(个人笔记)
  12. Android 源码下载并编译Rom
  13. 关键词策略 —关键词选择
  14. scylladb源码安装过程
  15. 阿里云生活物联网平台搭建
  16. cisco VoIP软电话配置实验
  17. c语言 求单元格中间某段字符串,EXCEL怎么取单元格里面的的值的中间某些字符...
  18. java降噪_耳机降噪技术有哪几种?
  19. java实现给一个年份,判断其所属生肖年并输出。。。
  20. HTTP 有哪些方法?

热门文章

  1. SVN:retrieval of mergeinfo unsupported by
  2. 附加作业:源自邹老师的作业“链接”
  3. WebStorm 9“神器”变“霸器”
  4. 8块钱搞定一个顶级域名 (全过程) B篇
  5. ubuntu中文设置
  6. [建议]我对博客园的发展的一点想法
  7. 附录-实模式下1M内存
  8. java将csv导入hdfs_把HDFS里的json数据转换成csv格式
  9. SpringMvc-参数为数组
  10. uv转化率多少正常_宣城UV光解设备价格多少-低价供应