news 2026/5/31 1:01:04

树的练习3--------1022从根到叶的二进制数之和

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
树的练习3--------1022从根到叶的二进制数之和

前言

前面做了一道题目,感觉已经摸到递归大道的门把手了,现在做这个题还是有点模糊,知道怎么去做,但是不知道怎么去实现,现在看完题解以后,又对递归多了一点理解。

题目:点这里

解法

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */ class Solution { int sum; void sumRoot(TreeNode* root,int pro){ if(root->left==nullptr&&root->right==nullptr){ sum+=pro*2+root->val; }//递归出口 if(root->left!=nullptr){ sumRoot(root->left,pro*2+root->val); } if(root->right!=nullptr){ sumRoot(root->right,pro*2+root->val); } } public: int sumRootToLeaf(TreeNode* root) { sum=0; sumRoot(root,0); return sum; } };

这个题目的思路就是利用前缀值pro和总值sum配合来求咱们的最终结果,具体过程就是将一条路线从头加到尾,然后回到上一层函数,选择不同子节点,再得到另外的结果,所有的结果加在一起就是最终结果。实现逻辑还是很清晰的,首先递归出口就是当当前根节点是叶子节点时,让sum加上pro×2在加上当前节点的值。然后递归内部 呢,就是利用两个if语句,要么往左走,要么往右走,组成所有可能的组合,得到我们想要的数。

反思

如果想从后往前(从里往外)传递值,就需要利用return;

如果想从前往后(从外往里)传递值,就需要将待传的值放在函数的参数列表上。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/30 11:51:37

linux清理缓存命令“echo 3 > /proc/sys/vm/drop_caches”

命令: echo 3 > /proc/sys/vm/drop_caches 是 Linux 系统中手动释放页缓存(Page Cache)的一种方式。下面详细解释其作用、原理和使用注意事项。 🔍 一、作用:清空内核的缓存(非应用程序内存)…

作者头像 李华
网站建设 2026/5/28 21:32:39

旧 Win7 转 Win11/10 文件传输难题?2 款实用工具快速搞定

很多朋友在将旧 Windows 7 电脑的数据迁移到 Win11/10 新机时,都会遇到一个尴尬问题:Win11/10 早已移除了 Windows 轻松传送功能,之前备份的大文件包没法直接用。其实不用慌,分享两款亲测好用的文件传输方案,不管是局域…

作者头像 李华
网站建设 2026/5/30 19:32:49

轻松备份策略全解析:备份方式 + 空间管理 + 配置教程

在数据安全愈发重要的当下,备份是公认的核心防护手段。仅完成基础备份远远不够,想要长期稳定地保护数据,还需搭配科学的备份策略 —— 既保证备份的完整性,又能避免磁盘空间被老旧备份占用。今天就给大家详细拆解老牌国产备份工具…

作者头像 李华
网站建设 2026/5/29 1:00:59

华邦2Gb SLC NAND闪存,工业级首选:W25N02KVZEIR

品牌:华邦(winbond)型号:W25N02KVZEIR容量:2Gb产品类型:NAND FLASH接口类型:高速SPI接口,支持标准、双线和四线模式。时钟频率最高可达20MHz,在四线模式下,数…

作者头像 李华