尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

代码随想录Day17_二叉树

代码随想录Day17_二叉树
📅 发布时间:2026/6/18 16:37:47
代码随想录Day17_二叉树

今日的四道题目分别是

  1. 重叠二叉树
  2. 在已知二叉树中搜索并返回以给定值为根节点的二叉树
  3. 判断二叉树是否是二叉搜索树
  4. 在给定数组中重建最大二叉树

最大二叉树

题目理解:

给定一个数组,其中最大的数作为根,根左边的数组构造左子树,根右边的数组构造右子树。

代码实现:

class Solution {
public:TreeNode* constructMaximumBinaryTree(vector<int>& nums) {TreeNode*node = new TreeNode(0);if(nums.size()==1){node->val=nums[0];return node;}int index =0;int maxValue =nums[0] ;for(int i=0;i<nums.size();i++){if(nums[i] >maxValue){maxValue=nums[i];index =i;}}//TreeNode* node = new TreeNode(0);node->val=maxValue;if(index>0)  {vector<int> vec(nums.begin(),nums.begin()+index);//区间构造函数node->left = constructMaximumBinaryTree(vec);}if(index<(nums.size()-1))  {vector<int> vec(nums.begin()+index+1,nums.end());node->right = constructMaximumBinaryTree(vec);}return node;}
};

其中,区间构造这块:这个if条件的区分左右区间很没有道理

if (index > 0) {vector<int> vec1(nums.begin(), nums.begin() + index); // 区间构造函数node->left = constructMaximumBinaryTree(vec1);}if (index < (nums.size() - 1)) {vector<int> vec2(nums.begin() + index + 1, nums.end());node->right = constructMaximumBinaryTree(vec2);}

重叠合并二叉树

题目理解:

已知两个二叉树,构造一个新的二叉树,新二叉树节点上的值是两个二叉树节点值的和。

代码实现:

class Solution {
public:TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {if(root1==NULL)   return root2;if(root2==NULL)   return root1;root1->val+=root2->val;root1->left=mergeTrees(root1->left, root2->left);root1->right=mergeTrees( root1->right, root2->right);return root1;}
};

验证二叉搜索树

题目理解:

判断一棵二叉树是否满足:左子树所有的值都小于根节点,右子树所有的值都大于根节点。

代码实现:

class Solution {
public:TreeNode* pre = NULL;bool isValidBST(TreeNode* root) {//变量作用域if (root == NULL)return true;bool left = isValidBST(root->left);if (pre != NULL && pre->val >= root->val)return false;pre = root;bool right = isValidBST(root->right);return left && right;}
};

搜索二叉搜索树

题目理解:

在给定二叉树中找到给点根节点的二叉树。

代码实现:

class Solution {
public:TreeNode* searchBST(TreeNode* root, int val) {if(root==NULL||root->val==val)  return root;if(root->val>val)return searchBST(root->left,val);if(root->val<val)return searchBST(root->right,val);return NULL;}
};

相关新闻

  • 人工智能之数据分析 numpy:第七章 数组迭代排序筛选
  • AE文字动画
  • windows11资源管理器桌面文件夹从中文“桌面”变为应为“Desktop”的恢复方法

最新新闻

  • 深入解析CodeWarrior DSP56800x项目向导:从配置原理到实战应用
  • 怕结算拖延、隐形扣费?沈阳合规回收机构推荐 - 开心测评
  • 2026海淀卡地亚回收别乱选!多家探店实测避坑 - 逸程
  • 如何快速掌握机器学习降维算法:从PCA到t-SNE实战完整指南
  • 2026 安徽哪所学校护理升学强?5大高升学率中职招生名单 - 小途xt
  • NXP DPAA硬件加速实战:报文头操作与CAAM加密引擎配置详解

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号