LeetCode_Sum Root to Leaf Numbers
来源:互联网 发布:华中地区数据科学会议 编辑:程序博客网 时间:2024/04/29 02:29
一.题目
Sum Root to Leaf Numbers
Total Accepted: 47437 Total Submissions: 156443My SubmissionsGiven a binary tree containing digits from 0-9
only, each root-to-leaf path could represent a number.
An example is the root-to-leaf path 1->2->3
which represents the number 123
.
Find the total sum of all root-to-leaf numbers.
For example,
1 / \ 2 3
The root-to-leaf path 1->2
represents the number 12
.
The root-to-leaf path 1->3
represents the number 13
.
Return the sum = 12 + 13 = 25
.
Show Tags
Have you met this question in a real interview?
Yes
No
Discuss
二.解题技巧
这道题只是一道二叉树的深度优先搜索的题目,在叶结点时将从根到叶结点的路径上的结点的值组成一个十进制的数,本质上还是一道深度优先搜索的题,只是换了一种考察的形式。这道题不难,只要细心点就可以bugfree的。
三.实现代码
#include <iostream>/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/struct TreeNode{ int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};class Solution{ void sumNumbers(TreeNode*root, int &Result, int &TmpResult) { if (!root) { return; } // update the TmpResult TmpResult = TmpResult * 10 + root->val; if (!root->left && !root->right) { Result += TmpResult; } if (root->left) { sumNumbers(root->left, Result, TmpResult); } if (root->right) { sumNumbers(root->right, Result, TmpResult); } // restore the TmpResult; TmpResult = (TmpResult - root->val) / 10; }public: int sumNumbers(TreeNode* root) { int Result = 0; int TmpResult = 0; sumNumbers(root, Result, TmpResult); return Result; }};
四.体会
这道题是一道二叉树深度优先搜索的变形题目,考察的还是二叉树的递归遍历,只是换了一种考察方式而已,并没有多大新意。
版权所有,欢迎转载,转载请注明出处,谢谢
0 0
- Leetcode_sum-root-to-leaf-numbers
- Leetcode_Sum Root to Leaf Numbers
- LeetCode_Sum Root to Leaf Numbers
- leetcode_Sum Root to Leaf Numbers _DFS_中等难度
- Sum Root to Leaf Numbers
- Sum Root to Leaf Numbers
- Sum Root to Leaf Numbers
- Sum Root to Leaf Numbers
- Sum Root to Leaf Numbers
- Sum Root to Leaf Numbers
- Sum Root to Leaf Numbers
- Sum Root to Leaf Numbers
- Sum Root to Leaf Numbers
- Sum Root to Leaf Numbers
- Sum Root to Leaf Numbers
- Sum Root to Leaf Numbers
- Sum Root to Leaf Numbers
- Sum Root to Leaf Numbers
- c++中map
- LeetCode-208 Implement Trie (Prefix Tree)
- 递归实现全排列,字典序法实现全排列
- 29Divide Two Integers
- Android Studio中常用设置与快捷键(私人珍藏,Eclipse转AS必看)
- LeetCode_Sum Root to Leaf Numbers
- Linux的启动SD卡的格式化方法 此博文包含图片(2010-07-11 21:20:55)
- iOS多线程编程之NSThread的使用
- Android通话中发送DTMF信号
- c++复习记录1 深拷贝与浅拷贝
- 程序实现二叉树的结构及其操作
- 29Divide Two Integers
- Java 生产者消费者并发实例
- 吐槽开发的代码未自测直接给 QA 测试带来的小烦恼