
leetcode题解108-将有序数组转换为二叉排序树
高度平衡的定义:每个节点的左右子树高度差不超过1。 折半查找方法:每次选择数组中间的元素作为根节点,左边构建左子树,右边构建右子树。这样左右子树的规模大致相同,满足高度平衡条件。 递归构建:从根节点开始,递归处理左右子树,直到所有元素处理完毕。 TreeNode类:定义了二叉树的节点结构,包含值、左子节点和右子节点。 genBinaryTree函数:递归构建二叉树。计算中间元素作为根节点,然后递归处理左右子数组。 sortedArrayToBST函数:初始化数组,并调用genBinaryTree函数生成二叉树。
发布日期:2025-04-05 04:51:33
浏览次数:8
分类:精选文章
本文共 1297 字,大约阅读时间需要 4 分钟。
要解决将已排序的整数数组转换为高度平衡二叉搜索树的问题,我们可以采用折半查找的方法。这种方法确保每次选择中间元素作为根节点,从而使得左右子树高度差不超过1,满足高度平衡的条件。
解题思路
解决代码
import java.util.ArrayDeque;import java.util.Queue;class Solution { public int[] arr; public TreeNode genBinaryTree(int low, int high) { if (low > high) { return null; } if (low == high) { return new TreeNode(arr[low]); } int mid = (low + high + 1) / 2; TreeNode root = new TreeNode(arr[mid]); root.left = genBinaryTree(low, mid - 1); root.right = genBinaryTree(mid + 1, high); return root; } public TreeNode sortedArrayToBST(int[] nums) { int len = nums.length; if (len == 0) { return null; } this.arr = nums; return genBinaryTree(0, len - 1); }}class TreeNode { public int val; public TreeNode left; public TreeNode right; public TreeNode(int val) { this.val = val; left = null; right = null; }}
代码解释
该方法确保每次选取中间元素,构造出的树满足高度平衡条件,左边和右边的子树高度差不超过1,从而高效地解决问题。
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年05月12日 22时15分43秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
LeetCode 中级 - 有序链表转换二叉搜索树(109)
2025-04-05
leetCode 字符串反转
2025-04-05
LeetCode 无重复字符的最长子串 获取字符串中不重复的子串最大长度
2025-04-05
LeetCode 热题 HOT 100 (java算法)实时更新 未完
2025-04-05
leetCode 给定数组,目标值 计算数组下标
2025-04-05
leetcode 验证回文字符串 java实现
2025-04-05
LeetCode(229):Majority Element ||
2025-04-05
leetcode--
2025-04-05
LeetCode--020--括号匹配
2025-04-05
Leetcode-966 Vowel Spellchecker(元音拼写检查器)
2025-04-05
Leetcode-991 Broken Calculator(坏了的计算器)
2025-04-05
LeetCode-Binary Tree Maximum Path Sum
2025-04-05
LeetCode.两数之和&三数之和&最接近的三数之和&四数之和
2025-04-05
LeetCode110.平衡二叉树
2025-04-05
LeetCode111.二叉树最小深度
2025-04-05
LeetCode114.二叉树展开为链表[后序遍历典例]
2025-04-05
LeetCode136.只出现一次的数字[异或运算典例]
2025-04-05
LeetCode13:罗马数字转整数
2025-04-05
leetcode190-颠倒二进制位
2025-04-05
leetcode191-打家劫舍
2025-04-05