美文网首页
108. Convert Sorted Array to Bin

108. Convert Sorted Array to Bin

作者: FlynnLWang | 来源:发表于2016-10-06 03:52 被阅读0次

    Question description

    Screenshot 2016-10-05 11.36.19.png

    My code

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    public class Solution {
        public TreeNode sortedArrayToBST(int[] nums) {
            int length = nums.length;
            if (length < 1) return null;
            if (length == 1) {
                TreeNode root = new TreeNode(nums[0]);
                root.left = null;
                root.right = null;
                return root;
            }
            TreeNode root = new TreeNode(nums[length / 2]);
            
            int leftFrom = 0;
            int leftTo = length / 2;
            int rightFrom = length / 2 + 1;
            int rightTo = length;
            
            int[] leftNums = Arrays.copyOfRange(nums, leftFrom, leftTo);
            int[] rightNums = Arrays.copyOfRange(nums, rightFrom, rightTo);
            
            root.left = sortedArrayToBST(leftNums);
            root.right = sortedArrayToBST(rightNums);
            
            return root;
        }
    }
    

    Solution

    A sorted array is a natural balanced binary search tree. Just find the middle number of nums and set it as root node, and do the same to the left sub-array and right sub-array.

    Test result

    Screenshot 2016-10-05 11.42.42.png

    相关文章

      网友评论

          本文标题:108. Convert Sorted Array to Bin

          本文链接:https://www.haomeiwen.com/subject/iuysyttx.html