From 1f494c6abe489c1b6fb54a31f2ad1869130ada43 Mon Sep 17 00:00:00 2001 From: youngyangyang04 <826123027@qq.com> Date: Thu, 29 Oct 2020 09:48:47 +0800 Subject: [PATCH] Update --- README.md | 4 +- .../129.求根到叶子节点数字之和.png | Bin 0 -> 60966 bytes .../0129.求根到叶子节点数字之和.md | 153 ++++++++++++++++++ 3 files changed, 155 insertions(+), 2 deletions(-) create mode 100644 pics/129.求根到叶子节点数字之和.png create mode 100644 problems/0129.求根到叶子节点数字之和.md diff --git a/README.md b/README.md index 201a4c44..dfe008a2 100644 --- a/README.md +++ b/README.md @@ -62,9 +62,9 @@ * [字符串:替换空格](https://mp.weixin.qq.com/s/t0A9C44zgM-RysAQV3GZpg) * [字符串:花式反转还不够!](https://mp.weixin.qq.com/s/X3qpi2v5RSp08mO-W5Vicw) * [字符串:反转个字符串还有这个用处?](https://mp.weixin.qq.com/s/PmcdiWSmmccHAONzU0ScgQ) - * [字符串:KMP是时候上场了(一文读懂系列)](https://mp.weixin.qq.com/s/70OXnZ4Ez29CKRrUpVJmug) + * [帮你把KMP算法学个通透!(理论篇)B站视频](https://www.bilibili.com/video/BV1PD4y1o7nd) + * [帮你把KMP算法学个通透!(代码篇)B站视频](https://www.bilibili.com/video/BV1M5411j7Xx) * [字符串:都来看看KMP的看家本领!](https://mp.weixin.qq.com/s/Gk9FKZ9_FSWLEkdGrkecyg) - * [字符串:听说你对KMP有这些疑问?](https://mp.weixin.qq.com/s/mqx6IM2AO4kLZwvXdPtEeQ) * [字符串:KMP算法还能干这个!](https://mp.weixin.qq.com/s/lR2JPtsQSR2I_9yHbBmBuQ) * [字符串:前缀表不右移,难道就写不出KMP了?](https://mp.weixin.qq.com/s/p3hXynQM2RRROK5c6X7xfw) * [字符串:总结篇!](https://mp.weixin.qq.com/s/gtycjyDtblmytvBRFlCZJg) diff --git a/pics/129.求根到叶子节点数字之和.png b/pics/129.求根到叶子节点数字之和.png new file mode 100644 index 0000000000000000000000000000000000000000..58288a9d7f5f5f95452b797b7b2cbe4bb735c4e8 GIT binary patch literal 60966 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 KP^Cz-p#K57MYFR2 literal 0 HcmV?d00001 diff --git a/problems/0129.求根到叶子节点数字之和.md b/problems/0129.求根到叶子节点数字之和.md new file mode 100644 index 00000000..edd5f423 --- /dev/null +++ b/problems/0129.求根到叶子节点数字之和.md @@ -0,0 +1,153 @@ + +## 思路 + +本题和[113.路径总和II](https://github.com/youngyangyang04/leetcode-master/blob/master/problems/0113.%E8%B7%AF%E5%BE%84%E6%80%BB%E5%92%8CII.md)是类似的思路,做完这道题,可以顺便把[113.路径总和II](https://github.com/youngyangyang04/leetcode-master/blob/master/problems/0113.%E8%B7%AF%E5%BE%84%E6%80%BB%E5%92%8CII.md) 和 [112.路径总和](https://github.com/youngyangyang04/leetcode/blob/master/problems/0112.路径总和.md) 做了。 + +结合112.路径总和 和 113.路径总和II,我在讲了[二叉树:递归函数究竟什么时候需要返回值,什么时候不要返回值?](https://mp.weixin.qq.com/s/6TWAVjxQ34kVqROWgcRFOg),如果大家对二叉树递归函数什么时候需要返回值很迷茫,可以看一下。 + +接下来在看本题,就简单多了,本题其实需要使用回溯,但一些同学可能都不知道自己用了回溯,在[二叉树:以为使用了递归,其实还隐藏着回溯](https://mp.weixin.qq.com/s/ivLkHzWdhjQQD1rQWe6zWA)中,我详细讲解了二叉树的递归中,如何使用了回溯。 + +接下来我们来看题: + +首先思路很明确,就是要遍历整个树把更节点到叶子节点组成的数字相加。 + +那么先按递归三部曲来分析: + +### 递归三部曲 + +如果对递归三部曲不了解的话,可以看这里:[二叉树:前中后递归详解](https://mp.weixin.qq.com/s/PwVIfxDlT3kRgMASWAMGhA) + +* 确定递归函数返回值及其参数 + +这里我们要遍历整个二叉树,且需要要返回值做逻辑处理,所有返回值为void,在[二叉树:递归函数究竟什么时候需要返回值,什么时候不要返回值?](https://mp.weixin.qq.com/s/6TWAVjxQ34kVqROWgcRFOg)中,详细讲解了返回值问题。 + +参数只需要把根节点传入,此时还需要定义两个全局遍历,一个是result,记录最终结果,一个是vector path。 + +**为什么用vector类型(就是数组)呢? 因为用vector方便我们做回溯!** + +所以代码如下: + +``` +int result; +vector path; +void traversal(TreeNode* cur) +``` + +* 确定终止条件 + +递归什么时候终止呢? + +当然是遇到叶子节点,此时要收集结果了,通知返回本层递归,因为单条路径的结果使用vector,我们需要一个函数vectorToInt把vector转成int。 + +终止条件代码如下: + +``` +if (!cur->left && !cur->right) { // 遇到了叶子节点 + result += vectorToInt(path); + return; +} +``` + +这里vectorToInt函数就是把数组转成int,代码如下: + +``` +int vectorToInt(const vector& vec) { + int sum = 0; + for (int i = 0; i < vec.size(); i++) { + sum = sum * 10 + vec[i]; + } + return sum; +} +``` + + +* 确定递归单层逻辑 + +本题其实采用前中后序都不无所谓, 因为也没有中间几点的处理逻辑。 + +这里主要是当左节点不为空,path收集路径,并递归左孩子,右节点同理。 + +**但别忘了回溯**。 + +如图: + + + + +代码如下: + +``` + // 中 +if (cur->left) { // 左 (空节点不遍历) + path.push_back(cur->left->val); + traversal(cur->left); // 递归 + path.pop_back(); // 回溯 +} +if (cur->right) { // 右 (空节点不遍历) + path.push_back(cur->right->val); + traversal(cur->right); // 递归 + path.pop_back(); // 回溯 +} +``` + +这里要注意回溯和递归要永远在一起,一个递归,对应一个回溯,是一对一的关系,有的同学写成如下代码: + +``` +if (cur->left) { // 左 (空节点不遍历) + path.push_back(cur->left->val); + traversal(cur->left); // 递归 +} +if (cur->right) { // 右 (空节点不遍历) + path.push_back(cur->right->val); + traversal(cur->right); // 递归 +} +path.pop_back(); // 回溯 +``` +**把回溯放在花括号外面了,世界上最遥远的距离,是你在花括号里,而我在花括号外!** 这就不对了。 + +### 整体C++代码 + +关键逻辑分析完了,整体C++代码如下: + +``` +class Solution { +private: + int result; + vector path; + // 把vector转化为int + int vectorToInt(const vector& vec) { + int sum = 0; + for (int i = 0; i < vec.size(); i++) { + sum = sum * 10 + vec[i]; + } + return sum; + } + // 递归函数不需要返回值,因为我们要遍历整个树 + void traversal(TreeNode* cur) { + if (!cur->left && !cur->right) { // 遇到了叶子节点 + result += vectorToInt(path); + return; + } + + if (cur->left) { // 左 (空节点不遍历) + path.push_back(cur->left->val); + traversal(cur->left); // 递归 + path.pop_back(); // 回溯 + } + if (cur->right) { // 右 (空节点不遍历) + path.push_back(cur->right->val); + traversal(cur->right); // 递归 + path.pop_back(); // 回溯 + } + return ; + } +public: + int sumNumbers(TreeNode* root) { + path.clear(); + if (root == nullptr) return 0; + path.push_back(root->val); + traversal(root); + return result; + } +}; +```