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

108. Convert Sorted Array to Bin

作者: 衣介书生 | 来源:发表于2018-02-27 12:21 被阅读3次

    题目分析

    原题链接,登录 LeetCode 后可用
    这道题目是让我们根据一个有序数组生成一棵二分查找树。二分查找树的特点是:左孩子比父节点小,右孩子比父节点大。二分查找树还有一个特点就是“中序遍历”可以让结点有序。

    代码

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
        
        private TreeNode build(int[] nums, int start, int end) {
            // 注意结束条件
            if(start > end) {
                return null;
            }
            TreeNode node = new TreeNode(nums[(start + end) / 2]);
            node.left = build(nums, start, (start + end) / 2 - 1);
            node.right = build(nums, (start + end) / 2 + 1, end);
            return node;
        }
        
        public TreeNode sortedArrayToBST(int[] nums) {
            if(nums == null) {
                return null;
            }
            return build(nums, 0, nums.length - 1);
        }
    }
    

    相关文章

      网友评论

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

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