Leetcode 108: Convert Sorted Array to Binary Search Tree
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * public int val; 5 * public TreeNode left; 6 * public TreeNode right; 7 * public TreeNode(int x) { val = x; } 8 * } 9 */ 10 public class Solution { 11 public TreeNode SortedArrayToBST(int[] nums) { 12 return DFS(nums, 0, nums.Length - 1); 13 } 14 15 private TreeNode DFS(int[] nums, int start, int end) 16 { 17 if (start > end) return null; 18 if (start == end) return new TreeNode(nums[start]); 19 20 int mid = start + (end - start) / 2; 21 var root = new TreeNode(nums[mid]); 22 root.left = DFS(nums, start, mid - 1); 23 root.right = DFS(nums, mid + 1, end); 24 25 return root; 26 } 27 }

浙公网安备 33010602011771号