赞
踩
- package tree;
-
- import java.util.Deque;
- import java.util.LinkedList;
-
- /*
- 将有序数组转换为二叉搜索树
- 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。
- 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。
- 示例 1:
- 输入:nums = [-10,-3,0,5,9]
- 输出:[0,-3,9,-10,null,5]
- 解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案:
- 作者:力扣 (LeetCode)
- 链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xninbt/
- 来源:力扣(LeetCode)
- 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
- * */
- public class SortedArrayToBST {
-
- private static class TreeNode {
- int val;
- TreeNode left;
- TreeNode right;
-
- TreeNode(int val, TreeNode left, TreeNode right) {
- this.val = val;
- this.left = left;
- this.right = right;
- }
-
- TreeNode(int val) {
- this.val = val;
- }
-
- }
-
- public static void main(String[] args) {
- int[] nums = {-10,-3, 0, 5, 9};
- TreeNode rootNode = sortedArrayToBST(nums);
- Deque<TreeNode> deque = new LinkedList<>();
- deque.addLast(rootNode);
- while (!deque.isEmpty()){
- int size = deque.size();
- while(size-->0){
- TreeNode node = deque.pop();
- System.out.println(" "+node.val);
- if (node.left!=null) {
- deque.addLast(node.left);
- }
- if (node.right!=null) {
- deque.addLast(node.right);
- }
- }
- System.out.println("---------");
- }
- }
-
- private static TreeNode sortedArrayToBST(int[] nums){
- if (nums == null || nums.length == 0){
- return null;
- }
- return sortedArrayToBST(nums, 0, nums.length-1);
- }
- // AVL
- // nums start end
- // root mid
- // start mid-1
- // mid+1 end
- // 0
- // -10 5
- // -3 9
- private static TreeNode sortedArrayToBST(int[] nums, int start, int end){
- if (start > end){
- return null;
- }
- int mid = (start+end)>>1;
- System.out.println("mid "+mid+" start "+start+" end "+end+" value "+nums[mid]);
- TreeNode root = new TreeNode(nums[mid]);
- root.left = sortedArrayToBST(nums, start, mid-1);
- root.right = sortedArrayToBST(nums, mid+1, end);
- return root;
- }
-
- }

输出:
- mid 2 start 0 end 4 value 0
- mid 0 start 0 end 1 value -10
- mid 1 start 1 end 1 value -3
- mid 3 start 3 end 4 value 5
- mid 4 start 4 end 4 value 9
- 0
- ---------
- -10
- 5
- ---------
- -3
- 9
- ---------
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。