当前位置: 首页 > news >正文

青岛开发区 网站建设今天的新闻摘抄

青岛开发区 网站建设,今天的新闻摘抄,香港gmt做空网站,买域名可以自己做网站吗目录 题目描述:108. 将有序数组转换为二叉搜索树(简单)题目接口解题思路代码 PS: 题目描述:108. 将有序数组转换为二叉搜索树(简单) 给你一个整数数组 nums ,其中元素已经按 升序 排列&#xf…

目录

  • 题目描述:108. 将有序数组转换为二叉搜索树(简单)
    • 题目接口
    • 解题思路
    • 代码
  • PS:

题目描述:108. 将有序数组转换为二叉搜索树(简单)

给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。

高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。

LeetCode做题链接:LeetCode-两数之和

示例 1:
在这里插入图片描述

输入:nums = [-10,-3,0,5,9]
输出:[0,-3,9,-10,null,5]
解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案:

在这里插入图片描述
示例 2:
在这里插入图片描述

输入:nums = [1,3]
输出:[3,1]
解释:[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。

提示:

1 <= nums.length <= 104
-104 <= nums[i] <= 104
nums 按 严格递增 顺序排列

题目接口

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public TreeNode sortedArrayToBST(int[] nums) {}
}

解题思路

  1. 定义一个TreeNode类,表示二叉树的节点。每个节点包含一个整数值和左右子节点的引用。
  2. sortedArrayToBST方法中,调用dfs方法来递归地构建平衡二叉搜索树。dfs方法接受三个参数:整数数组nums、子数组的起始索引lo和结束索引hi
  3. dfs方法中,首先检查当前子数组是否为空(即lo > hi),如果是,则返回null表示没有节点需要构造。
  4. 如果当前子数组不为空,计算当前子数组的中间索引mid,然后创建一个值为nums[mid]的根节点。
  5. 接下来,递归地构建左子树和右子树。左子树的范围是[lo, mid-1],右子树的范围是[mid+1, hi]。通过传递新的起始索引和结束索引给dfs方法来实现递归。
  6. 最后,返回当前子数组的根节点。
  7. 当所有子数组都被处理后,sortedArrayToBST方法将返回最终构建的平衡二叉搜索树的根节点。

代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
public TreeNode sortedArrayToBST(int[] nums) {return dfs(nums, 0, nums.length - 1);
}// 定义一个深度优先搜索的方法,用于构建平衡二叉搜索树
private TreeNode dfs(int[] nums, int lo, int hi) {// 如果当前子数组为空,返回null表示没有节点需要构造if (lo > hi) {return null;}// 计算当前子数组的中间索引int mid = lo + (hi - lo) / 2;// 创建当前子数组的根节点,值为nums[mid]TreeNode root = new TreeNode(nums[mid]);// 递归构建左子树,范围为[lo, mid-1]root.left = dfs(nums, lo, mid - 1);// 递归构建右子树,范围为[mid+1, hi]root.right = dfs(nums, mid + 1, hi);// 返回当前子数组的根节点return root;
}

成功!
在这里插入图片描述

PS:

感谢您的阅读!如果您觉得本篇文章对您有所帮助,请给予博主一个喔~

http://www.mmbaike.com/news/110373.html

相关文章:

  • 三合一网站开发有什么区别制作公司网站大概多少钱
  • 网站建站和推广服务公司安装百度一下
  • 能看人与动物做的网站百度招聘
  • wordpress 首页调用栏目文章揭阳新站seo方案
  • 做纱线的网站软件培训机构
  • 临沂网站建设培训广州网站优化关键词排名
  • 怎么做网站下单宁德市属于哪个省
  • 和平网站建设淘宝关键词排名怎么查询
  • 宝安附近做网站公司免费网站模板
  • 贵阳58同城做网站站长统计app软件下载官网
  • 什么网站可以做性格测试seo效果分析
  • 川菜餐馆网站建设模板美食餐厅企业建站php源码程序今日刚刚发生的军事新闻
  • wordpress 增加其它语言网站优化排名软件推广
  • 软件网站关键词优化关键词app下载
  • 企业营销系统和网站建设合肥网站维护公司
  • 外国已经不把疫情当回事了做专业搜索引擎优化
  • 碑林微网站建设学校网站建设哪家好
  • 电子商务网站建设的策划书黄页网站推广公司
  • 广州网站建设排名站长工具传媒
  • youku网站开发技术企业培训课程安排表
  • 丽江网站建设宁波网站关键词优化代码
  • 新乡建网站百度打广告多少钱一个月
  • eclipse用来做网站前端爱站网长尾词挖掘工具
  • 公众号 微网站建设方案点点站长工具
  • 一个营业执照可以做两个网站如何免费发布广告
  • 衡阳退休职工做面膜网站优化大师的功能有哪些
  • 郑州东区网站建设windows优化大师是什么软件
  • 网站建设证书百度搜索热度
  • 江门市专业做网站公司杭州网站优化流程
  • wordpress筛选插件快速整站优化