《程序员代码面试指南》有序数组生成平衡搜索二叉树——java实现

xiaoxiao2025-11-01  16

有序数组生成平衡搜索二叉树

题目描述:

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

题目难度:

medium

题目思路:

先找到有序数组的中间值,即为二叉树对应的头结点,递归找到该二叉树的左子树和右子树。

代码实现:

public static Node generateBST(int[] sortArr) { if (sortArr == null) { return null; } return generate(sortArr, 0, sortArr.length - 1); } public static Node generate(int[] sortArr, int l, int r) { if (l > r) { return null; } int mid = (l + r) / 2; Node head = new Node(sortArr[mid]); head.left = generate(sortArr, l, mid - 1); head.right = generate(sortArr, mid + 1, r); return head; }
转载请注明原文地址: https://www.6miu.com/read-5038896.html

最新回复(0)