文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下:

二叉树的根是数组中的最大元素。
左子树是通过数组中最大值左边部分构造出的最大二叉树。
右子树是通过数组中最大值右边部分构造出的最大二叉树。
通过给定的数组构建最大二叉树,并且输出这个树的根节点。

示例 :输入:[3,2,1,6,0,5]
输出:返回下面这棵树的根节点:6/   \3     5\    / 2  0   \1

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-binary-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 找到最大点,划分区间,递归查找
class Solution {public:TreeNode* constructMaximumBinaryTree(vector<int>& nums) {return build(nums,0,nums.size()-1);}TreeNode* build(vector<int>& nums, int start, int end) {if(start > end)return NULL;int maxNum = INT_MIN, midx;TreeNode *node;for(int i = start; i <= end; ++i){if(nums[i] > maxNum){maxNum = nums[i];midx = i;}}node = new TreeNode(maxNum);node->left = build(nums, start, midx-1);node->right = build(nums, midx+1, end);return node;}
};

LeetCode 654. 最大二叉树(递归)相关推荐

  1. leetcode 101. 对称二叉树 递归解法 c语言

    如题: 给定一个二叉树,检查它是否是镜像对称的. 例如,二叉树 [1,2,2,3,4,4,3] 是对称的.1/ \2 2/ \ / \ 3 4 4 3但是下面这个 [1,2,2,null,3,null ...

  2. leetcode 101. 对称二叉树 递归解法

    题目 思路 一开始想要层序遍历二叉树,然后判断每一层是否回文,写着写着发现这样太麻烦了,看了评论区别人的递归解法,才写出来的. 二叉树的四种遍历方法: https://www.cnblogs.com/ ...

  3. leetcode —— 654. 最大二叉树

    给定一个不含重复元素的整数数组.一个以此数组构建的最大二叉树定义如下: 二叉树的根是数组中的最大元素. 左子树是通过数组中最大值左边部分构造出的最大二叉树. 右子树是通过数组中最大值右边部分构造出的最 ...

  4. LeetCode 654 最大二叉树

    题目链接:力扣s 思路: 递归 递归函数声明: TreeNode*  constructMaximumBinaryTree(vector<int>& nums) 递归出口:  (1 ...

  5. 自我总结:Leetcode 654, 105, 106, 889

    终于算是熬过期末以后想起来了学学习了哈哈哈哈. 今天看看二叉树的构造,以下内容为自我学习总结,主要目的为学习笔记,兼职传播小想法.内容为学习labuladong的学习笔记.以下为链接,感谢大佬的学习讲 ...

  6. LeetCode 101. 对称二叉树(递归循环)

    1. 题目 给定一个二叉树,检查它是否是镜像对称的. 例如,二叉树 [1,2,2,3,4,4,3] 是对称的.1/ \2 2/ \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,n ...

  7. LeetCode实战:二叉树的最近公共祖先

    背景 为什么你要加入一个技术团队? 如何加入 LSGO 软件技术团队? 我是如何组织"算法刻意练习活动"的? 为什么要求团队的学生们写技术Blog 题目英文 Given a bin ...

  8. LeetCode实战:二叉树中的最大路径和

    背景 为什么你要加入一个技术团队? 如何加入 LSGO 软件技术团队? 我是如何组织"算法刻意练习活动"的? 为什么要求团队的学生们写技术Blog 题目英文 Given a non ...

  9. leetcode 617. 合并二叉树 思考分析

    题目 给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠. 你需要将他们合并为一个新的二叉树.合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否 ...

最新文章

  1. cordova 环境配制和创建插件
  2. 极具潜力的新兴职业!
  3. 启明云端分享 | 小明带你用一组图查看ESP32-S3 \ESP32-S2\ ESP32的区别
  4. Android Fragment应用实战
  5. 虚拟内存越大越好吗_二次构造柱泵的功率越大越好吗—自然不是
  6. 七种分布式全局 ID 生成策略,你更爱哪种?
  7. 诗歌rails之获取本地ip地址
  8. Fedora和Red Hat Enterprise Linux实用指南(第6版)(套装上下册)火热上市!!!!
  9. 分布式消息规范 OpenMessaging 1.0.0-preview 发布 1
  10. 我们大学的第一桶金!!(更新中。。。)
  11. 缓存踩踏:Facebook史上最严重的宕机事件分析
  12. LINUX 使用ssh客户端
  13. Visual Odometry技术 (Of VSLAM)
  14. arduino继电器控制风扇_arduino控制继电器
  15. ycl-django网站搭建(持续更新中)
  16. 这一天,我给自己写了一封信
  17. 吐血推荐 ▏看完这个我才知道原来PHP应该这样学!大牛的成功是可以复制的(福利派送)
  18. 微软服务器dda,Windows 10 版本2004 微软官方原版镜像
  19. 磁盘分区表(Partition Table)
  20. 大数据基础环境搭建的从spark到hadoop,从底层硬件到上层软件的一些必备注意事项

热门文章

  1. Linux:I/O多路转接之select(有图有代码有真相!!!)
  2. WINCC访问OPC服务器显示叹号,本机浏览opcserver.wincc ,无法打开-工业支持中心-西门子中国...
  3. win10商店下载位置_Win10删应用商店下载记录|Win10删Microsoft Store下载记录
  4. Window系统下安装Redis
  5. caffe各种依赖包配置
  6. web前端复习系列[1]——标签
  7. SharePoint 2013的100个新功能之网站管理(一)
  8. linux top 命令的结果
  9. vector的内存释放
  10. android性能测试工具之dumpsys