zoukankan      html  css  js  c++  java
  • 二分法构造AVL树

    public class ConvertSortedArrayToBinarySearchTree {
        public static TreeNode sortedArrayToBST(int[] nums) {
            if (nums == null || nums.length == 0) {
                return null;
            }
            return buildFromSorted(0, nums.length - 1, nums);
        }
    
        public static TreeNode buildFromSorted(int lo, int hi, int[] nums) {
            if (hi < lo)
                return null;
            int mid = (lo + hi) / 2; //3个相等,就只有mid没有左右节点。
    
            TreeNode left = null;
            if (lo < mid)//lo只能小于等于mid。只有2个元素时候lo=mid,hi=mid+1=lo+1。
                //就有根节点mid,没有左节点,有右节点hi=mid+1。
                left = buildFromSorted(lo, mid - 1, nums);
            TreeNode middle = new TreeNode(nums[mid]);
            if (left != null) {
                middle.left = left;
            }
            if (mid < hi) {
                TreeNode right = buildFromSorted(mid + 1, hi, nums);
                middle.right = right;
            }
            return middle;//middle是根,left是左节点,right是右节点。
        }
        
        public static void main(String[] args) {
            TreeNode tn = sortedArrayToBST(new int[] {1,2,3,4,5,6,7,8,9,10,11,12});
        }
    }
    public class TreeNode {
        public int val;
        public TreeNode left;
        public TreeNode right;
        public TreeNode(int x) {
            val = x;
        }
        public TreeNode(int val, TreeNode left, TreeNode right) {
            super();
            this.val = val;
            this.left = left;
            this.right = right;
        }
        public TreeNode() {
            super();
        }
    }
  • 相关阅读:
    磁盘与文件系统管理
    zookeeper安装部署
    linux打包与压缩
    MongoDB聚合查询
    scrapy中选择器用法
    scrapy基本用法
    python操作mongoDB
    超详细windows安装mongo数据库、注册为服务并添加环境变量
    python beautifulsoup基本用法-文档搜索
    python beautifulsoup基本用法-文档结构
  • 原文地址:https://www.cnblogs.com/yaowen/p/11121481.html
Copyright © 2011-2022 走看看