力扣 求根到叶子节点数字之和
力扣 求根到叶子节点数字之和
题目描述
给定一个二叉树,它的每个结点都存放一个 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.
要点分析
用一个变量记录当前节点的值, 然后先序遍历二叉树, 遍历过程中有下面三种情况:
- 当前节点的左右孩子节点均为空节点. 此时说明该节点为叶子节点, 需要将其值加到ans中
- 当前节点的左孩子节点不为空节点. 此时更新该节点的左孩子节点对应的值,并递归访问左孩子节点
- 当前节点的右孩子节点不为空节点. 此时更新该节点的右孩子节点对应的值,并递归访问右孩子节点
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;}
};
力扣 求根到叶子节点数字之和相关推荐
- 力扣解题——求根到叶子节点数字之和
难度:中等 题目:给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字. 例如,从根到叶子节点路径 1->2->3 代表数字 123. 计算从根到 ...
- 叶子结点和分支节点_leetcode No.129 求根到叶子节点数字之和
题目链接: 求根到叶子节点数字之和 - 力扣(LeetCode)leetcode-cn.com 题目描述: 给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个 ...
- 10.13(129. 求根到叶子节点数字之和 130. 被围绕的区域)
129. 求根到叶子节点数字之和(通过) 思路:递归,前序遍历的应用 效率:100% 程序代码: /*** Definition for a binary tree node.* struct Tre ...
- LeetCode 129. 求根到叶子节点数字之和(DFS)
1. 题目 给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字. 例如,从根到叶子节点路径 1->2->3 代表数字 123. 计算从根到叶子节 ...
- leetcode -- 129. 求根到叶子节点数字之和
给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字. 例如,从根到叶子节点路径 1->2->3 代表数字 123. 计算从根到叶子节点生成的所有 ...
- 【Leetcode | 42】129. 求根到叶子节点数字之和
给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字. 例如,从根到叶子节点路径 1->2->3 代表数字 123. 计算从根到叶子节点生成的所有 ...
- leetcode 129. 求根到叶子节点数字之和(先序遍历)
给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字.例如,从根到叶子节点路径 1->2->3 代表数字 123.计算从根到叶子节点生成的所有数字 ...
- leetcode129. 求根到叶子节点数字之和(dfs)
给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字.例如,从根到叶子节点路径 1->2->3 代表数字 123.计算从根到叶子节点生成的所有数字 ...
- leetcode129. 求根到叶子节点数字之和
给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字. 例如,从根到叶子节点路径 1->2->3 代表数字 123. 计算从根到叶子节点生成的所有 ...
最新文章
- 8.1shell介绍 8.2命令历史 8.3命令补全和别名 8.4通配符 8.5输入输出重定向
- Android开发--Http操作介绍(一)
- Redis 注册为 widows 服务
- 带你反编译APP然后重新打包「MacOS」
- html前端如何缓存页面,Nuxt中如何做页面html缓存
- [转载] TensorFlow2.0 学习 线性回归
- python 字符串 变量_Python检查变量是字符串
- python3入门与进阶 网盘_python3入门与进阶(二)
- Qt QString 与 const char* 类型的转换
- 用request.getParameterMap()获得jsp页面元素的集合出现[Ljava.lang.String;@的问题解决
- 大话数据结构(个人笔记)
- Android 源码下载并编译Rom
- 关键词策略 —关键词选择
- scylladb源码安装过程
- 阿里云生活物联网平台搭建
- cisco VoIP软电话配置实验
- c语言 求单元格中间某段字符串,EXCEL怎么取单元格里面的的值的中间某些字符...
- java降噪_耳机降噪技术有哪几种?
- java实现给一个年份,判断其所属生肖年并输出。。。
- HTTP 有哪些方法?
热门文章
- SVN:retrieval of mergeinfo unsupported by
- 附加作业:源自邹老师的作业“链接”
- WebStorm 9“神器”变“霸器”
- 8块钱搞定一个顶级域名 (全过程) B篇
- ubuntu中文设置
- [建议]我对博客园的发展的一点想法
- 附录-实模式下1M内存
- java将csv导入hdfs_把HDFS里的json数据转换成csv格式
- SpringMvc-参数为数组
- uv转化率多少正常_宣城UV光解设备价格多少-低价供应