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

  1. 二叉树的根是数组中的最大元素。
  2. 左子树是通过数组中最大值左边部分构造出的最大二叉树。
  3. 右子树是通过数组中最大值右边部分构造出的最大二叉树。

通过给定的数组构建最大二叉树,并且输出这个树的根节点。

示例 :

解题思路:通过递归和二分查找建立二叉树。其C++代码如下:

class Solution {public:TreeNode* constructMaximumBinaryTree(vector<int>& nums) {return function(nums, 0 , nums.size());}TreeNode* function(vector<int>& nums, int left, int right)  // 递归函数{if(left>=right)return NULL;int max_num = nums[left];int mid = left;for(int i=left;i<right;++i){if(nums[i]>max_num){max_num = nums[i];mid = i;}}auto tree =new TreeNode(max_num);tree->left = function(nums, left, mid);tree->right = function(nums, mid+1, right);return tree;}
};

leetcode —— 654. 最大二叉树相关推荐

  1. LeetCode 654. 最大二叉树(递归)

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

  2. LeetCode 654 最大二叉树

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

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

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

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

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

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

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

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

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

  7. 【Leetcode | 02】二叉树、线性表目录

    二叉树 序号 题号 1 94. 二叉树的中序遍历 2 95. 不同的二叉搜索树 II 3 96. 不同的二叉搜索树 4 98. 验证二叉搜索树 5 100. 相同的树 6 101. 对称二叉树 7 1 ...

  8. LeetCode Python实现 二叉树简单部分

    LeetCode Python实现 二叉树简单部分 ''' 1 二叉树的最大深度 给定一个二叉树,找出其最大深度.二叉树的深度为根节点到最远叶子节点的最长路径上的节点数.说明: 叶子节点是指没有子节点 ...

  9. 二叉树层次遍历c语言_每日一道 LeetCode (23):二叉树的层次遍历 II

    ❝ 每天 3 分钟,走上算法的逆袭之路. ❞ 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub:https://github.com/meteor1993/LeetCode Gi ...

最新文章

  1. “学了半年后,我要揭开Python 3宗罪!”
  2. 杂:(4)NE555
  3. 面对来势凶猛的社区电商 小商店的路在哪里?
  4. 数据库的文本处理函数
  5. unity开发罗技G29方向盘(制作操作汽车)
  6. matlab用本原多项式生成本的m序列,本原多项式产生的m序列
  7. Target DLL has been cancelled
  8. android12.0(S) 从SD卡导入vCard文件到通讯录 号码带“-“ 如何把横线去除
  9. js+css制作导航栏下划线跟随动画,App+H5点击效果
  10. 最新100个微信小程序
  11. Windows7下pip安装包报错 Microsoft Visual C++ 9 0 is required Unabl
  12. 惠普打印机2132故障灯大全图解_绝对干货!二手打印机选购攻略!
  13. 如何批量将多个 PPT 文档中的图片提取出来
  14. 爬取沪江网考研词汇并按要求存为txt
  15. 生活,本是一场修行!
  16. Postgresql opm监控工具部署
  17. Android 百度鹰眼 SDK
  18. 解决 git@gitlab.com: Permission denied (publickey,gssapi-with-mic,password)
  19. java官网以及java官网下载地址
  20. mysql拼音函数_Mysql生成姓名拼音的函数

热门文章

  1. iTextSharp 使用详解用C#制作PDF文件全攻略
  2. 调整自己--提升自己
  3. 转载自《读者》--您也吻我一下好吗
  4. 使用NGINX Plus API动态配置upstream
  5. Royal TS 一款非常好用的SSH客户端,XShell的完美代替品
  6. BGP——重分发注意点(总结+配置)
  7. C语言,利用一维数组交换法排序,使学生成绩高低排序(要求输入为负值时输入结束)
  8. 一个WordPress站点绑定多个域名
  9. 网络爬虫数据挖掘_我如何构建无服务器网络爬虫以大规模挖掘温哥华房地产数据...
  10. SAS在金融中的应用六