LeetCode-Algorithms-[Easy][树基本题]108. 将有序数组转换为二叉搜索树

这个题就是考数据结构最基本的性质

108. 将有序数组转换为二叉搜索树

public class No108 {
	private int[] nums;
	private int length;

	public TreeNode sortedArrayToBST(int[] nums) {
		if (nums.length == 0) {
			return null;
		}
		initial(nums);
		int mid = this.length / 2;
		int val = nums[mid];
		TreeNode root = new TreeNode(val);
		root.left = buildTree(0, mid - 1);
		root.right = buildTree(mid + 1, length - 1);
		return root;
	}

	private TreeNode buildTree(int begin, int end) {
		if (begin > end) {
			return null;
		}
		if (begin < 0) {
			return null;
		}
		if (end >= this.length) {
			return null;
		}
		int mid = (end + begin) / 2;
		int val = nums[mid];
		TreeNode root = new TreeNode(val);
		root.left = buildTree(begin, mid - 1);
		root.right = buildTree(mid + 1, end);
		return root;
	}

	private void initial(int[] n) {
		this.nums = n;
		this.length = n.length;
	}
}

猜你喜欢

转载自blog.csdn.net/m0_37302219/article/details/106257112