leetcode笔记:Sum Root to Leaf Numbers
来源:互联网 发布:bot的知识图谱数据api 编辑:程序博客网 时间:2024/06/16 11:14
一. 题目描述
Given 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
.
二. 题目分析
这道题只是一道二叉树的深度优先搜索的题目,在叶结点时将从根到叶结点的路径上的结点的值组成一个十进制的数,本质上还是一道深度优先搜索的题。
三. 示例代码
#include <iostream>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; }};
四. 小结
这道题是一道二叉树深度优先搜索的变形题目,考察的还是二叉树的递归遍历,只是换了一种考察方式而已。
3 0
- leetcode笔记:Sum Root to Leaf Numbers
- [leetCode刷题笔记]129. Sum Root to Leaf Numbers
- leetcode 86: Sum Root to Leaf Numbers
- [LeetCode] Sum root to leaf numbers
- LeetCode : Sum Root to Leaf Numbers
- [leetcode] Sum Root to Leaf Numbers
- 【leetcode】Sum Root to Leaf Numbers
- LeetCode之sum root to leaf numbers
- leetcode:Sum Root to Leaf Numbers
- [LeetCode]Sum Root to Leaf Numbers
- [Leetcode]Sum Root to Leaf Numbers
- [leetcode]Sum Root to Leaf Numbers
- leetcode Sum Root to Leaf Numbers
- LeetCode-Sum Root to Leaf Numbers
- [leetcode] Sum Root to Leaf Numbers
- LeetCode 129: Sum Root to Leaf Numbers
- LeetCode - Sum Root to Leaf Numbers
- leetcode之Sum Root to Leaf Numbers
- 自我介绍
- SignalR 实现 Web 客户端与服务器实时通信
- 不允许直接访问jsp处理方式一过滤器
- java基础-Java网络编程和反射
- 实习入职第一周
- leetcode笔记:Sum Root to Leaf Numbers
- GDI+之验证码
- 怎样搭高质量的Android项目框架,框架的结构具体描述?
- 1035. 插入与归并(25)
- C语言位运算
- HDU 1009 FatMouse' Trade
- APK反编译二次打包实例-消除apk底部广告
- fields must be fully assigned before control is returned to the caller解决方案
- oc基础之分类与协议(五)