LeetCode 108 Convert Sorted Array to Binary Search Tree

来源:互联网 发布:12306客户端网络有问题 编辑:程序博客网 时间:2024/05/17 06:52

Given an array where elements are sorted in ascending order, convert it to a height balanced BST.

该题很简单,只需要将数组最中间的数作为根节点,左边的作为左节点,右边的作为右节点,再反复递归实现即可。

/** * Definition for binary tree * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {public TreeNode sortedArray2BST(int[] num, int start, int end) {int tmp = (start + end) / 2;TreeNode node = new TreeNode(num[tmp]);if(start!=tmp) node.left = sortedArray2BST(num, start, tmp - 1);if(tmp!=end) node.right = sortedArray2BST(num, tmp + 1, end);return node;}public TreeNode sortedArrayToBST(int[] num) {    if(num.length==0) return null;int start=0;int end=num.length-1;return sortedArray2BST(num,start,end);}}

0 0
原创粉丝点击