【Leetcode刷题篇】leetcode108 将有序数组转换为二叉搜索树
发布日期:2021-06-29 15:33:22 浏览次数:2 分类:技术文章

本文共 684 字,大约阅读时间需要 2 分钟。

题目:将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。

本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。

在这里插入图片描述

题解:对其用遍历的形式,来生成二叉树。

package com.lcz.leetcode;/** * 将有序数组转换为二叉搜索树 * @author LvChaoZhang * */public class Leetcode108 {
class TreeNode{
int val; TreeNode left; TreeNode right; TreeNode(int x){
val = x; } } public TreeNode sortedArrayToBST(int[] nums) {
return dfs(nums,0,nums.length-1); } private TreeNode dfs(int[] nums,int left,int right) {
// 截止条件 if(left>right) {
return null; } // 构建根节点 int mid = left+(right-left)/2; TreeNode root = new TreeNode(nums[mid]); // 递归构建 root.left = dfs(nums,left,mid-1); root.right = dfs(nums,mid+1,right); return root; }}

转载地址:https://codingchaozhang.blog.csdn.net/article/details/109491412 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【Leetcode刷题篇】leetcoe109 有序链表转换二叉搜索树
下一篇:【Leetcode刷题篇】leetcode530 二叉搜索树的最小绝对差

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月11日 18时44分06秒