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

补卡day16

513. 找树左下角的值 - 力扣(LeetCode)

class Solution {
public:int findBottomLeftValue(TreeNode* root) {queue<TreeNode*> qu;//  if(root == nullptr) return;TreeNode* node = nullptr;qu.push(root);while(!qu.empty()){int n = qu.size();while(n--){node = qu.front();qu.pop();if(node->right) qu.push(node->right);if(node->left) qu.push(node->left);}}return node->val; // 最后一个节点就是左下角的节点}
};

112. 路径总和 - 力扣(LeetCode)

class Solution {
public:bool hasPathSum(TreeNode* root, int targetSum) {if(root == nullptr) return false;targetSum -= root->val;// 如果现在已经是叶子节点了if(root->left == nullptr && root->right == nullptr){if(targetSum == 0){return true;}else{return false;}}return hasPathSum(root->left, targetSum) || hasPathSum(root->right, targetSum);}
};

113. 路径总和 II - 力扣(LeetCode)

class Solution {
private:void dfs(TreeNode* node, int targetSum, vector<int> &path, vector<vector<int>>& res){if(node == nullptr) return;targetSum -= node->val;path.push_back(node->val);if(node->left == nullptr && node->right == nullptr){if(targetSum == 0){res.push_back(path); //共同使用一个path, 所以这里不能返回path.pop_back();return;}}dfs(node->left,targetSum,path,res);dfs(node->right,targetSum,path,res);path.pop_back();}
public:vector<vector<int>> pathSum(TreeNode* root, int targetSum) {vector<int> path;vector<vector<int>> res;dfs(root,targetSum,path,res);return res;}
};

106. 从中序与后序遍历序列构造二叉树 - 力扣(LeetCode)

class Solution {
public:TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) {if(postorder.empty()) return nullptr;// 空节点auto it = find(inorder.begin(), inorder.end(),postorder.back());int size = it - inorder.begin() ;vector<int> in1(inorder.begin(), inorder.begin() + size);//左子树的中序vector<int> in2(inorder.begin() + size + 1, inorder.end());// 右子树的中序vector<int> post1(postorder.begin(), postorder.begin() + size);//左子树的后序vector<int> post2(postorder.begin() + size, postorder.end() - 1);TreeNode* left = buildTree(in1, post1);TreeNode* right = buildTree(in2, post2);return new TreeNode(postorder.back(), left, right);}
};

105. 从前序与中序遍历序列构造二叉树 - 力扣(LeetCode)

class Solution {
public:TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) {if(preorder.empty()) return nullptr;auto it = find(inorder.begin(), inorder.end(), preorder.front());int size =  it - inorder.begin() ; // 左子树的大小vector<int> pre1(preorder.begin() + 1, preorder.begin() + size + 1); // 左子树的先序vector<int> pre2(preorder.begin() + size + 1, preorder.end());// 右子树的先序vector<int> in1(inorder.begin(), inorder.begin() + size);// 左子树的中序vector<int> in2(inorder.begin() + size + 1, inorder.end());TreeNode* left = buildTree(pre1, in1);TreeNode* right = buildTree(pre2, in2);return new TreeNode(preorder.front(), left, right);}
};

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

相关文章:

  • Django @login_required实现登陆认证
  • A#语言详解
  • Redis - 使用 Redis HyperLogLog 进行高效基数统计
  • 安全生产基础知识(一)
  • django基于Python的设计师作品平台的数据可视化系统设计与实现
  • 音视频学习(五十二):ADTS
  • 集成电路学习:什么是Parameter Server参数服务器
  • 比特币现货和比特币合约的区别与联系
  • 联邦学习之------VT合谋
  • 刑法视野下的虚拟财产属性争议:法律风险与市场潜力解析
  • 机器学习——TF-IDF 衡量词语在文档中重要程度
  • MySQL 序列使用详细说明
  • SpringIoc 实践和应用--XML配置
  • PHP版本控制系统:高效文档管理
  • MVC结构变种——第三章核心视图及控制器的整体逻辑
  • 计算机网络---IP(互联网协议)
  • 学习分库分表的前置知识:高可用系统架构理论与实践
  • Android视图回调机制:从post到ViewTreeObserver,从源码分析到最佳实践
  • java组件漏洞
  • 【在线五子棋对战】十二、http请求处理
  • 从 GPT‑2 到 gpt‑oss:解析架构的迭代
  • C++移动语义、完美转发及编译器优化零拷贝
  • win11(RTX5060)下进行nanodetplus训练
  • 2025年全国青少年信息素养大赛Scratch编程践挑战赛-小低组-初赛-模拟题
  • 动态工作流:目标结构源自表
  • 红楼梦文本数据分析
  • SpringBoot实现文件上传
  • CART算法:Gini指数
  • sqli-labs-master/Less-62~Less-65
  • 人工智能正在学习自我提升的方式