当前位置: 代码迷 >> 综合 >> 第三章 二叉树问题(通过有序数组生成平衡搜索二叉树)
  详细解决方案

第三章 二叉树问题(通过有序数组生成平衡搜索二叉树)

热度:77   发布时间:2023-10-11 12:07:22.0

【题目】

        给定一个有序数字sortArr,已知其中没有重复值,用这个有序数组生成一棵平衡二叉树,并且该平衡二叉树中序遍历的结果与sortArr一致

【分析】

        用有序数组最中间的树生成二叉树的头节点,然后用这个树左边的树生成左子树,用右边的树生成右子树即可

【代码】

package zyc.binaryTree;public class P152_SortedArrToCbt {public static Node arrToCbt(int[] arr, int start, int end) {if (start > end) {return null;}Double index = Math.ceil(((double) start + (double) end) / 2);int mid = index.intValue();Node node = new Node(arr[mid]);node.left = arrToCbt(arr, start, mid - 1);node.right = arrToCbt(arr, mid + 1, end);return node;}public static void main(String[] args) {int arr[] = {1, 2, 3, 4, 5, 6, 7, 8};Node node = arrToCbt(arr, 0, arr.length - 1);System.out.println(node);}public static class Node {public int value;public Node left;public Node right;public Node(int value) {this.value = value;}}
}

  相关解决方案