LeetCode 108. Convert Sorted Array to Binary Search Tree
来源:互联网 发布:陈伟霆 知乎 编辑:程序博客网 时间:2024/05/22 10:47
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
解题思路:树的形状与树节点的值无关,只与数组递增排序后的长度有关。为了得到一棵平衡二叉树,只需要保持每个子树的根节点是该子树中序遍历得到的数组的中间一个数就可以了,所以在解题过程中,得到当前排序数组的元素个数,取中间一个数为根节点,然后将小于该数的所有数作为构成该数左子树的节点,将大于该数的所有数作为构成该数右子树的节点,递归形成每个子树的根节点就可以了。
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public TreeNode sortedArrayToBST(int[] nums) { if(nums.length==0){ return null; }else{ //直接将nums的下标传过去 return helper(nums,0,nums.length-1); } } //start和end都是nums的下标,middle也表示数组中的下标 public TreeNode helper(int[] nums,int start,int end){ //将start到end正中间的节点作为根节点 // TreeNode p=null; if(start>end){ TreeNode p=null; return p; }else if(start==end){ //如果只有一个下标,就以该下标的元素新建节点 TreeNode p=new TreeNode(nums[start]); return p; }else{ //中间节点在数组中的下标 int middle=(end-start)/2 +start; TreeNode p = new TreeNode(nums[middle]); //将所有小于等于中间数的数作为该节点的左子树,递归形成左子树 p.left=helper(nums,start,middle-1); //将所有大于等于中间数的数作为该节点的右子树,递归形成右子树 p.right=helper(nums,middle+1,end); return p; } }}
0 0
- LeetCode 108. Convert Sorted Array to Binary Search Tree
- [LeetCode]108.Convert Sorted Array to Binary Search Tree
- 108. Convert Sorted Array to Binary Search Tree Leetcode Python
- [Leetcode] 108. Convert Sorted Array to Binary Search Tree
- LeetCode --- 108. Convert Sorted Array to Binary Search Tree
- [leetcode] 108.Convert Sorted Array to Binary Search Tree
- LeetCode 108. Convert Sorted Array to Binary Search Tree
- 108. Convert Sorted Array to Binary Search Tree LeetCode
- [LeetCode]108. Convert Sorted Array to Binary Search Tree
- [LeetCode]108. Convert Sorted Array to Binary Search Tree
- [leetcode] 108. Convert Sorted Array to Binary Search Tree
- Leetcode 108. Convert Sorted Array to Binary Search Tree
- leetCode 108. Convert Sorted Array to Binary Search Tree JAVA
- LeetCode *** 108. Convert Sorted Array to Binary Search Tree
- leetcode 108. Convert Sorted Array to Binary Search Tree
- leetcode 108. Convert Sorted Array to Binary Search Tree
- LeetCode - 108. Convert Sorted Array to Binary Search Tree
- 【LeetCode】108. Convert Sorted Array to Binary Search Tree
- 面向web前端及node开发人员的vim配置
- 导入时如何定制spring-boot依赖项的版本
- Boost.Aiso教程 4 使用成员函数作为一个句柄
- 【模拟】洛谷 P1179 数字统计
- Android databinding xml中处理数据与控件绑定
- LeetCode 108. Convert Sorted Array to Binary Search Tree
- Java反序列化漏洞通用利用分析
- 桌面组件移动端技术资料集锦
- 2017女生赛 1001 Automatic Judge【】
- 稳定婚姻问题
- LeetCode刷题(C++)——Remove Duplicates from Sorted Array(Easy)
- 架构设计五之建造者模式和责任链模式
- CLion 新建c++项目报错解决方法
- python3 爬虫