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

【代码随想录37期】Day18 找树左下角的值、路径总和、从中序与后序遍历序列构造二叉树

找树左下角的值

class Solution {
public:int findBottomLeftValue(TreeNode *root) {TreeNode *node;queue<TreeNode *> q;q.push(root);while (!q.empty()) {node = q.front(); q.pop();if (node->right) q.push(node->right);if (node->left)  q.push(node->left);}return node->val;}
};

路径总和

class Solution {
public:bool hasPathSum(TreeNode* root, int targetSum) {if (!root) {return false;}// que.second 存储父节点之前路经和queue<pair<TreeNode*, int>> que;que.emplace(root, 0);while (!que.empty()) {TreeNode* node = que.front().first;int pre_sum = que.front().second;que.pop();auto cur_sum = pre_sum + node->val;if (!node->left && !node->right && cur_sum == targetSum) {return true;}if (node->left) {que.emplace(node->left, cur_sum);}if (node->right) {que.emplace(node->right, cur_sum);}}return false;}
};

从中序与后序遍历序列构造二叉树

class Solution {
public:TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) {unordered_map<int, int> d;int n = inorder.size();for (int i = 0; i < n; ++i) {d[inorder[i]] = i;}function<TreeNode*(int, int, int)> dfs = [&](int i, int j, int n) -> TreeNode* {if (n <= 0) {return nullptr;}int v = postorder[j + n - 1];int k = d[v];auto l = dfs(i, j, k - i);auto r = dfs(k + 1, j + k - i, n - k + i - 1);return new TreeNode(v, l, r);};return dfs(0, 0, n);}
};

相关文章:

  • 文盘Rust -- 生命周期问题引发的 static hashmap 锁
  • flink读kafka写mysql数据库
  • 【LeetCode】【1】两数之和(1141字)
  • 美业美容院会员服务预约店铺管理小程序的效果是什么
  • 粤嵌—2024/5/17—N 皇后 ||(✔)
  • 各大模型厂商API使用:百度、阿里、豆包、kimi、deepseek
  • AIGC 004-T2I-adapter另外一种支持多条件组合控制的文生图方案!
  • 计算机视觉与深度学习实战:以Python为工具,基于深度学习的汽车目标检测
  • C语言 | Leetcode C语言题解之第113题路径总和II
  • Java线程池机制揭秘:一文掌握核心概念与实战技巧
  • 基于小波分析和机器学习(SVM,KNN,NB,MLP)的癫痫脑电图检测(MATLAB环境)
  • Day04:CSS 进阶
  • Ubuntu18.04 OpenSSH升级
  • IT行业的现状与未来发展趋势:从云计算到量子计算的技术变革
  • 猫头虎 解析:为什么AIGC在国内适合做TOB,在国外适合做TOC?
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 【Leetcode】104. 二叉树的最大深度
  • 4个实用的微服务测试策略
  • Android组件 - 收藏集 - 掘金
  • CentOS从零开始部署Nodejs项目
  • github从入门到放弃(1)
  • javascript从右向左截取指定位数字符的3种方法
  • JS字符串转数字方法总结
  • Laravel Mix运行时关于es2015报错解决方案
  • passportjs 源码分析
  • SpiderData 2019年2月16日 DApp数据排行榜
  • 闭包--闭包之tab栏切换(四)
  • 翻译--Thinking in React
  • 分布式事物理论与实践
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 检测对象或数组
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 微信公众号开发小记——5.python微信红包
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 小程序开发之路(一)
  •  一套莫尔斯电报听写、翻译系统
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 终端用户监控:真实用户监控还是模拟监控?
  • 移动端高清、多屏适配方案
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • # centos7下FFmpeg环境部署记录
  • # 达梦数据库知识点
  • # 飞书APP集成平台-数字化落地
  • #、%和$符号在OGNL表达式中经常出现
  • #include到底该写在哪
  • #pragma预处理命令
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (a /b)*c的值
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (备份) esp32 GPIO
  • (初研) Sentence-embedding fine-tune notebook
  • (二)pulsar安装在独立的docker中,python测试
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (力扣题库)跳跃游戏II(c++)
  • (论文阅读11/100)Fast R-CNN