zoukankan      html  css  js  c++  java
  • LeetCode_108. Convert Sorted Array to Binary Search Tree

    108. Convert Sorted Array to Binary Search Tree

    Easy

    Given an array where elements are sorted in ascending order, convert it to a height balanced BST.

    For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.

    Example:

    Given the sorted array: [-10,-3,0,5,9],
    
    One possible answer is: [0,-3,9,-10,null,5], which represents the following height balanced BST:
    
          0
         / 
       -3   9
       /   /
     -10  5
    package leetcode.easy;
    
    /**
     * Definition for a binary tree node. public class TreeNode { int val; TreeNode
     * left; TreeNode right; TreeNode(int x) { val = x; } }
     */
    public class ConvertSortedArrayToBinarySearchTree {
    	public TreeNode sortedArrayToBST(int[] nums) {
    		if (0 == nums.length) {
    			return null;
    		}
    		TreeNode root = new TreeNode(nums[nums.length / 2]);
    		root.left = sortedArrayToBST(java.util.Arrays.copyOfRange(nums, 0, nums.length / 2));
    		root.right = sortedArrayToBST(java.util.Arrays.copyOfRange(nums, nums.length / 2 + 1, nums.length));
    		return root;
    	}
    
    	private static void transLevel(TreeNode root) {
    		java.util.LinkedList<TreeNode> queue = new java.util.LinkedList<>();
    		if (null == root) {
    			return;
    		} else {
    			System.out.print(root.val + " ");
    			queue.offer(root);
    			while (!queue.isEmpty()) {
    				root = queue.pop();
    				if (root.left != null) {
    					System.out.print(root.left.val + " ");
    					queue.offer(root.left);
    				}
    				if (root.right != null) {
    					System.out.print(root.right.val + " ");
    					queue.offer(root.right);
    				}
    			} // end of the while
    		} // end of the if
    	}
    
    	@org.junit.Test
    	public void test() {
    		int[] nums = { -10, -3, 0, 5, 9 };
    		TreeNode root = sortedArrayToBST(nums);
    		transLevel(root);
    	}
    }
    
  • 相关阅读:
    mvc:三
    mvc:二
    Linq分组,linq方法分组
    Linq 中按照多个值进行分组(GroupBy)
    Photoshop 字体
    报表Reporting S而vice是 错误的解决
    1*书籍装帧
    photoshop 魔术橡皮擦
    Photoshop 钢笔 双窗口显示
    数字格式化
  • 原文地址:https://www.cnblogs.com/denggelin/p/11615512.html
Copyright © 2011-2022 走看看