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

leetcode刷题日记——求根节点到叶节点数字之和

[ 题目描述 ]:
在这里插入图片描述
[ 思路 ]:

  • 根节点到每个叶子节点的路径可以构成一个数,求这些数字的和
  • 递归:通过深度遍历,构建出这些数字,然后将这些数字的和求出即可
  • 运行如下
    在这里插入图片描述
int getValue(struct TreeNode* root,int sum){if(!root) return 0;sum=sum*10+root->val;if(!root->left && !root->right){return sum;}return getValue(root->left,sum)+getValue(root->right,sum);
}int sumNumbers(struct TreeNode* root) {return getValue(root,0);
}

[ 官方题解 ]:

  • 方法一:深度优先搜索,基本同上
  • 方法二:广度优先搜索,仍然是维护两个队列,一个记录节点,一个记录数字
    • 如果当前节点是叶子节点,则将该节点对应的数字加到数字之和;
    • 如果当前节点不是叶子节点,则获得当前节点的非空子节点,并根据当前节点对应的数字和子节点的值计算子节点对应的数字,然后将子节点和子节点对应的数字分别加入两个队列。
int sumNumbers(struct TreeNode* root) {if (root == NULL) {return 0;}int sum = 0;struct TreeNode* nodeQueue[2000];int numQueue[2000];int leftQueue = 0, rightQueue = 0;nodeQueue[rightQueue] = root;numQueue[rightQueue++] = root->val;while (leftQueue < rightQueue) {struct TreeNode* node = nodeQueue[leftQueue];int num = numQueue[leftQueue++];struct TreeNode* left = node->left;struct TreeNode* right = node->right;if (left == NULL && right == NULL) {sum += num;} else {if (left != NULL) {nodeQueue[rightQueue] = left;numQueue[rightQueue++] = num * 10 + left->val;}if (right != NULL) {nodeQueue[rightQueue] = right;numQueue[rightQueue++] = num * 10 + right->val;}}}return sum;
}
http://www.xdnf.cn/news/9036.html

相关文章:

  • Python数据分析基础(一)
  • vue3自定义指令来实现 v-lazyImg 功能
  • IP地址查询的重要性
  • 01 NLP的发展历程和挑战
  • 第2章 程序设计语言基础知识
  • C#编解码:Base64扩展类的实现与应用
  • 人工智能如何协助老师做课题
  • 电子电路:什么是感应电动势?
  • C++ 模板函数深度指南
  • 【CF】Day66——Edu 168.D + CF 853 (Div. 2).C (树 + 二分 + 贪心 | 组合数学)
  • 佰力博科技与您探讨铁电分析仪具有哪些测试功能
  • [PyMySQL]
  • reflect-metadata作用
  • Ubuntu | NVIDIA 驱动、CUDA 与 cuDNN 的安装与配置 / 常见问题及解决方法
  • Zabbix集成Grfana自定义仪表盘
  • World of Warcraft [CLASSIC] Jewelcrafting Gemstone 3 [80 WLK]
  • 初等数论--Garner‘s 算法
  • 邻近标记技术(PL):探索生物分子相互作用的前沿工具
  • Java设计模式之适配器模式
  • AI时代新词-多模态(Multimodal)
  • 测评机构如何通过漏扫保障软件安全?扫描范围与局限解析
  • leetcode:2235. 两整数相加(python3解法,数学相关算法题)
  • 十六进制字符转十进制算法
  • C++——STL——unordered_map与unordered_set的使用以及使用哈希表封装unordered_map/set
  • https的进化之路(八卦版)
  • JVM 深度解析
  • k-way Hypergraph Partitioning via n-Level Recursive Bisection【2016 ALENEX】文献总结
  • N2语法 时间
  • 协同过滤实现电影推荐
  • 931. 用三种不同颜色为网格涂色