当前位置: 首页 > news >正文

leetcode 129. 求根节点到叶节点数字之和

2023.9.8

        好久没写回溯题了,有点陌生ToT。 

        本题思路就是通过回溯保存所有根节点到叶子节点的路径,然后将这些路径转化为数字并全部相加。 直接看代码:

/*** 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 {
private:vector<int> path;int ans;//将保存的路径值转化为数字int path2sum(vector<int>& path){int sum = 0;for(int i=0; i<path.size(); i++){sum = sum * 10 + path[i];}return sum;}//回溯void backtrating(TreeNode* cur){//终止条件:遇到了叶子节点if(!cur->left && !cur->right){ans += path2sum(path);return;}if(cur->left){path.push_back(cur->left->val);backtrating(cur->left);path.pop_back();}if(cur->right){path.push_back(cur->right->val);backtrating(cur->right);path.pop_back();}}
public:int sumNumbers(TreeNode* root) {path.push_back(root->val);backtrating(root);return ans;}
};

http://www.lryc.cn/news/158812.html

相关文章:

  • 嵌入式开发-11 Linux下GDB调试工具
  • Java测试(11) --- selenium
  • vue3 defineExpose 显示的指定组件需要暴露的属性
  • 算法通关村第十七关:黄金挑战-跳跃游戏问题
  • Git GitHub GitLab
  • 前端的规范
  • 嵌入式软件有限状态机的 C 语言实现
  • 面试题常考:LRU缓存
  • Redis 教程 - 持久化
  • 2023 大学生数学建模竞赛-C题-第一问
  • 设计模式3 观察者模式
  • 如何防止网络安全攻击
  • 怎么从0到1实现一个PHP框架?
  • 脚本:python实现樱花树
  • 公司内部传文件怎么安全——「用绿盾透明加密软件」
  • 提高使用VS Code工作效率的技巧
  • 软件系统兼容性测试都要注意哪些问题?
  • 索尼 toio™应用创意开发征文|toio俄罗斯方块游戏
  • C#事件event
  • 气传导耳机什么牌子好?盘点五款好用的气传导耳机分享
  • 业绩走低,毛利率下滑,海外市场能否成为极米科技救命稻草?
  • 轻松敏捷开发流程之Scrum
  • Vue3+Element Plus实现el-table跨行显示(非脚手架)
  • 生成订单30分钟未支付,则自动取消,该怎么实现?
  • WebGIS外包开发流程
  • pytorch学习——LSTM和GRU
  • 【Python】Python 利用模块实现单例模式
  • 雅思写作 三小时浓缩学习顾家北 笔记总结(四)
  • 深入学习与探索:高级数据结构与复杂算法
  • CV:计算机视觉CV运用领域