标签:imu etc 输出 pre def 构建 style uil return
Leetcode之分治法专题-654. 最大二叉树(Maximum Binary Tree)
给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下:
通过给定的数组构建最大二叉树,并且输出这个树的根节点。
示例 :
输入:[3,2,1,6,0,5] 输出:返回下面这棵树的根节点: 6 / 3 5 \ / 2 0 1
提示:
分别找l到r区间里的最大值,然后再构造其左右的子树就ok了。
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public TreeNode constructMaximumBinaryTree(int[] nums) { return buildTreeNode(nums,0,nums.length-1); } public TreeNode buildTreeNode(int[] nums,int l,int r){ if(l>r){ return null; } int index = -1; int max = Integer.MIN_VALUE; for(int i=l;i<=r;i++){ if(nums[i]>max){ max = nums[i]; index = i; } } TreeNode res = new TreeNode(max); res.left = buildTreeNode(nums,l,index-1); res.right = buildTreeNode(nums,index+1,r); return res; } }
Leetcode之分治法专题-654. 最大二叉树(Maximum Binary Tree)
标签:imu etc 输出 pre def 构建 style uil return
原文地址:https://www.cnblogs.com/qinyuguan/p/11515743.html