「这是我参与11月更文挑战的第18天,活动详情查看:2021最后一次更文挑战」
654. 最大二叉树
题目描述
给定一个不含重复元素的整数数组 nums
。一个以此数组直接递归构建的 最大二叉树 定义如下:
- 二叉树的根是数组
nums
中的最大元素。 - 左子树是通过数组中 最大值左边部分 递归构造出的最大二叉树。
- 右子树是通过数组中 最大值右边部分 递归构造出的最大二叉树。
返回有给定数组 nums
构建的 最大二叉树 。
示例 1:
1 | ini复制代码输入: nums = [3,2,1,6,0,5] |
示例 2:
1 | ini复制代码输入: nums = [3,2,1] |
解析
类似于上一题(13、从中序与后序遍历序列构造二叉树(106))
- 1、如果数组为空,则返回空
- 2、找到数组中的最大数,作为根节点
- 3、将剩余的数组分为左数组和右数组
- 4、递归构造二叉树(处理左数组和右数组)
代码
1 | c++复制代码class Solution |
本文转载自: 掘金