今天的題目為108.Convert Sorted Array to Binary Search Tree,題目再叫我們給定一個升序排列的整數陣列,要把它轉換成一棵高度平衡的BST。
以下是程式碼與解說:
class Solution {
public TreeNode sortedArrayToBST(int[] nums) {
return buildTree(nums, 0, nums.length - 1);
}
private TreeNode buildTree(int[] nums, int left, int right) {
// 遞迴結束條件:區間無效
if (left > right) return null;
// 找中間值作為根節點
int mid = left + (right - left) / 2;
TreeNode node = new TreeNode(nums[mid]);
// 建立左子樹
node.left = buildTree(nums, left, mid - 1);
// 建立右子樹
node.right = buildTree(nums, mid + 1, right);
return node;
}
}
雖然今天的比較簡單,但一開始在題目了解尚有出現一點小插曲。