バイナリ検索ツリーに質問--Convertソート配列を磨くための時間から時間にLeetCode

ソート配列は、バイナリ検索ツリーに変換します

要素が昇順にソートされる配列を指定し、高さバランスがBSTに変換します。

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public TreeNode sortedArrayToBST(int[] nums) {
        if(nums.length==0){
            return null;
        }
        TreeNode head=helper(nums,0,nums.length-1);
        return head;
    }
    public TreeNode helper(int[] nums,int low,int high){
        if(low>high){
            return null;
        }
        int mid=(high+low)/2;
        TreeNode root=new TreeNode(nums[mid]);
        root.left=helper(nums,low,mid-1);
        root.right=helper(nums,mid+1,high);
        return root;
    }
}

もちろん、我々は平衡二分探索木を得るために、我々は、アレイに中間ノードを取るし続ける必要があり、配列をソートする必要があります。私たちは、簡単に配列を2つに分割して維持するために、再帰を考えることができ、配列の中央の要素は、それぞれ左右のノードノード、そして答えに割り当てられています。

173元記事公開 ウォンの賞賛110 ビューに10万+を

おすすめ

転載: blog.csdn.net/qq_35564813/article/details/104736998