// return [lo .. hi] tree private static LeetCode654TreeNode Build(int[] nums, int lo, int hi) { if (lo > hi) { return(null); } var index = 0; var max = int.MinValue; for (int i = lo; i <= hi; i++) { if (max < nums[i]) { max = nums[i]; index = i; } } var root = new LeetCode654TreeNode(max); root.left = Build(nums, lo, index - 1); root.right = Build(nums, index + 1, hi); return(root); }
public LeetCode654TreeNode(int val = 0, LeetCode654TreeNode left = null, LeetCode654TreeNode right = null) { this.val = val; this.left = left; this.right = right; }