leetcode Convert Sorted Array to Binary Search Tree

来源:互联网 发布:辉煌软件 编辑:程序博客网 时间:2024/05/16 10:09

题目链接

思路:
分治法

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    int []nums;    public TreeNode sortedArrayToBST(int[] nums) {        if(nums.length==0)        {            return null;        }        this.nums=nums;        int middle=(nums.length-1)/2;        TreeNode root=new TreeNode(nums[middle]);        help(root, 0, middle-1,true);        help(root,middle+1,nums.length-1,false);        return root;    }    public void help(TreeNode root,int left,int right,boolean isLeft)    {        if(right<left)        {            return;        }        int middle=(left+right)/2;        if(isLeft)        {            root.left=new TreeNode(nums[middle]);            help(root.left,left,middle-1,true);            help(root.left,middle+1,right,false);        }        else        {            root.right=new TreeNode(nums[middle]);            help(root.right,left,middle-1,true);            help(root.right,middle+1,right,false);        }    }}
0 0
原创粉丝点击