博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 129. 求根到叶子节点数字之和(Sum Root to Leaf Numbers)
阅读量:5020 次
发布时间:2019-06-12

本文共 1318 字,大约阅读时间需要 4 分钟。

题目描述

 

给定一个二叉树,它的每个结点都存放一个 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 /** 2  * Definition for a binary tree node. 3  * struct TreeNode { 4  *     int val; 5  *     TreeNode *left; 6  *     TreeNode *right; 7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8  * }; 9  */10 class Solution {11 public:12     int sumNumbers(TreeNode* root) {13         if(!root) return 0;14         int sum = 0;15         preOrder(root, sum, 0);16         return sum;17     }18     void preOrder(TreeNode* root, int &sum, int num){19         if(!root->left && !root->right)20             sum += num * 10 + root->val;21         else{22             num = num * 10 + root->val;23             if(root->left)24                 preOrder(root->left, sum, num);25             if(root->right)26                 preOrder(root->right, sum, num);27         }28     }29 };

 

转载于:https://www.cnblogs.com/wmx24/p/9400224.html

你可能感兴趣的文章
在eclipse中设计BPMN 2.0工作流定义的根本步骤
查看>>
Json对象与Json字符串互转(4种转换方式)
查看>>
PAT甲级1002 链表实现方法
查看>>
查看Linux信息
查看>>
Python中sys模块sys.argv取值并判断
查看>>
【详记MySql问题大全集】四、设置MySql大小写敏感(踩坑血泪史)
查看>>
并查集
查看>>
ubuntu 11.04下android开发环境的搭建!
查看>>
Bzoj 3343: 教主的魔法
查看>>
括号序列(栈)
查看>>
一件趣事
查看>>
DevExpress控件TExtLookupComboBox实现多列模糊匹配输入的方法
查看>>
atom 调用g++编译cpp文件
查看>>
H3C HDLC协议特点
查看>>
iptables 网址转译 (Network address translation,NAT)
查看>>
ios __block typeof 编译错误解决
查看>>
android 插件形式运行未安装apk
查看>>
ios开发之 manage the concurrency with NSOperation
查看>>
Android权限 uses-permission
查看>>
NSEnumerator用法小结
查看>>