LeetCode 1382. 将二叉搜索树变平衡(中序遍历+二分递归)

1. 题目

给你一棵二叉搜索树,请你返回一棵 平衡后 的二叉搜索树,新生成的树应该与原来的树有着相同的节点值。

如果一棵二叉搜索树中,每个节点的两棵子树高度差不超过 1 ,我们就称这棵二叉搜索树是 平衡的 。

如果有多种构造方法,请你返回任意一种。

在这里插入图片描述

示例
输入:root = [1,null,2,null,3,null,4,null,null]
输出:[2,1,3,null,null,null,4]
解释:这不是唯一的正确答案,[3,1,4,null,2,null,null] 也是一个可行的构造方案。提示:
树节点的数目在 110^4 之间。
树节点的值互不相同,且在 110^5 之间。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/balance-a-binary-search-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 先中序遍历,是有序的,存入vector
  • 对 vector 二分递归,建立平衡二叉搜索树
class Solution {
public:TreeNode* balanceBST(TreeNode* root) {if(!root)return root;stack<TreeNode*> s;vector<TreeNode*> v;TreeNode* tp;while(root || !s.empty()){while(root){s.push(root);root = root->left;}tp = s.top();s.pop();root = tp->right;tp->left = NULL;tp->right = NULL;v.push_back(tp);}return build(v,0,v.size()-1);}TreeNode* build(vector<TreeNode*>& v, int l, int r){if(l > r)return NULL;int mid = l+((r-l)>>1);TreeNode* root = v[mid];root->left = build(v,l,mid-1);root->right = build(v,mid+1,r);return root;}
};

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/477045.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电影:『新警察故事』

【电影名称】&#xff1a;『新警察故事』 【主 演】&#xff1a; 成龙 谢霆锋 杨采妮 蔡卓妍 吴彦祖  【导 演】&#xff1a; 陈木胜 【内容简介】&#xff1a;《新警察故事》是成龙英皇电影公司的处女作&#xff0c;投资超过1亿6000万港元&#xff0c;请来香港顶尖电影…

NLP顶级赛事LIC2022霸榜经验分享!

语言是人类传递信息最重要的媒介&#xff0c;让机器理解语言并进行交互是人工智能的重要挑战。为推动语言与智能领域的技术发展和应用&#xff0c;中国中文信息学会、中国计算机学会和百度公司连续五年联合举办“语言与智能技术竞赛”&#xff0c;为中文NLP研究者和开发者提供同…

Spring Cloud Zuul中使用Swagger汇总API接口文档

有很多读者问过这样的一个问题&#xff1a;虽然使用Swagger可以为Spring MVC编写的接口生成了API文档&#xff0c;但是在微服务化之后&#xff0c;这些API文档都离散在各个微服务中&#xff0c;是否有办法将这些接口都整合到一个文档中&#xff1f;之前给大家的回复都只是简单的…

LeetCode 1381. 设计一个支持增量操作的栈(deque/数组)

1. 题目 请你设计一个支持下述操作的栈。 实现自定义栈类 CustomStack &#xff1a; CustomStack(int maxSize)&#xff1a;用 maxSize 初始化对象&#xff0c;maxSize 是栈中最多能容纳的元素数量&#xff0c;栈在增长到 maxSize 之后则不支持 push 操作。void push(int x)…

GARFIELD@10-31-2004

apprentice转载于:https://www.cnblogs.com/rexhost/archive/2004/10/31/59013.html

Spring Cloud构建微服务架构:分布式服务跟踪(入门)【Dalston版】

通过之前的N篇博文介绍&#xff0c;实际上我们已经能够通过使用它们搭建起一个基础的微服务架构系统来实现我们的业务需求了。但是&#xff0c;随着业务的发展&#xff0c;我们的系统规模也会变得越来越大&#xff0c;各微服务间的调用关系也变得越来越错综复杂。通常一个由客户…

有哪些值得计算机专业学生加入的国企?

文 |重庆搬砖喵知乎知乎上最近有个问题很火&#xff1a;有哪些值得计算机专业学生加入的国企&#xff1f;这个问题确实很应今年秋招的景&#xff0c;于是转载了知乎答主重庆搬砖喵 的高赞回答分享给大家。原回答链接&#xff1a;https://www.zhihu.com/question/285730093/answ…

上海著名综合性商厦一览 (1)

上海著名综合性商厦一览 jxjb 2004-10-29 11:53:21 发表于搜狐焦点上海房地产网-谈房论市-东方康洛论坛 主要包括&#xff1a;第一百货东楼 华联商厦 置地广场 友谊欧洲商城 东方商厦 港汇广场 汇金百货 梅龙镇广场 中环广场二百永新 正大广场 上海第一八佰伴友谊南方商城…

LeetCode 1383. 最大的团队表现值(贪心,优先队列,难)

1. 题目 公司有编号为 1 到 n 的 n 个工程师&#xff0c;给你两个数组 speed 和 efficiency &#xff0c;其中 speed[i] 和 efficiency[i] 分别代表第 i 位工程师的速度和效率。 请你返回由最多 k 个工程师组成的 ​​​​​​最大团队表现值 &#xff0c;由于答案可能很大&am…

程序员坐牢了,会被安排去写代码吗?

文 | 无念源 | 知乎今天给大家分享一篇有意思的爽文&#xff0c;但也是根据多年之前一个真实报道改编而来的。本文字数较多&#xff0c;建议先收藏&#xff0c;上下班路上、带薪上厕所、浑水摸鱼时再慢慢看~本故事纯属虚构请大家不要随意模仿&#xff0c;后果自负&#xff01;因…

Dubbo将积极适配Spring Cloud生态,Spring Cloud体系或将成为微服务的不二选择!

2016年&#xff0c;我在博客中发表过一篇《微服务架构的基础框架选择&#xff1a;Spring Cloud还是Dubbo&#xff1f;》获得了很大的阅读量和转载量。在这篇文章中&#xff0c;我主要对比了Spring Cloud与Dubbo所具备的能力&#xff0c;并阐述了个人推崇Spring Cloud的原因。但…

Java sdk及tomcat安装设置

在安装好Java SDK后&#xff0c;还需要设置一些系统变量&#xff0c;系统变量的设置可以在系统属性-高级-环境变量中进行 JAVA_HOMEJAVA安装目录 CLASSPATH… 库路径&#xff0c;可以是目录或jar文件&#xff0c;如C:\j2sdk1.4.0_01\lib\dt.jar;d:\java&#xf…

剑指Offer - 面试题51. 数组中的逆序对(归并排序,求逆序对)

1. 题目 在数组中的两个数字&#xff0c;如果前面一个数字大于后面的数字&#xff0c;则这两个数字组成一个逆序对。输入一个数组&#xff0c;求出这个数组中的逆序对的总数。 示例 1: 输入: [7,5,6,4] 输出: 5限制&#xff1a; 0 < 数组长度 < 50000来源&#xff1a;力…

【小马哥】Spring Cloud系列讲座

这里推荐一个不错的Spring Cloud系列讲座&#xff0c;讲师简介如下&#xff1a; 小马哥&#xff0c;阿里巴巴技术专家&#xff0c;从事十余年Java EE 开发&#xff0c;国内微服务技术讲师。目前主要负责微服务技术推广、架构设计、基础设施、迁移等。重点关注云计算、微服务以及…

名校女教授,强迫其男博士“发生性关系多年”!索赔750万

转自 | 论文项目硕博招聘、磐创AI来源 | FOREIGNDAILY 、双一流高校等早稻田大学是日本的知名大学&#xff0c;但最近这所知名大学却引来了不小的争议。早稻田大学一名25岁的学生&#xff0c;将他的女导师和学校一起告上了法庭&#xff0c;要求他们赔偿自己750万日元&#xff…

剑指Offer - 面试题43. 1~n整数中1出现的次数(找规律+公式)

1. 题目 输入一个整数 n &#xff0c;求1&#xff5e;n这n个整数的十进制表示中1出现的次数。 例如&#xff0c;输入12&#xff0c;1&#xff5e;12这些整数中包含1 的数字有1、10、11和12&#xff0c;1一共出现了5次。 示例 1&#xff1a; 输入&#xff1a;n 12 输出&…

从网上看到的很搞笑的东西

[转]天下无贼经典台词IT版 戴尔&#xff1a;“人心散了&#xff0c;队伍不好带了!“ IBM&#xff1a;“我最烦你们些胡乱降价的了&#xff0c;一点技术含量都没有!“ 惠普&#xff1a;“实话告诉你们&#xff0c;惠普很生气&#xff0c;后果很严重!“ Intel&#xff1a;“你过得…

Spring Cloud实战小贴士:turbine如何聚合设置了context-path的hystrix数据

之前在spring for all社区看到这样一个问题&#xff1a;当actuator端点设置了context-path之后&#xff0c;turbine如何聚合数据&#xff1f;首先&#xff0c;我们要知道actuator端点设置了context-path是什么意思&#xff1f;也就是说&#xff0c;此时spring boot actuator的端…

prompt范式有了商业模式,卖提示词可以赚钱??

文 | 衡宇 发自 凹非寺源 | 量子位DALLE 2、GPT-3提示词在线交易平台&#xff0c;了解一下&#xff1f;最近&#xff0c;一家初创公司PromptBase&#xff0c;允许用户在该平台买卖提示词&#xff08;Prompt&#xff09;&#xff0c;提示词售价为1.99美元。PromptBase将向卖家抽…

LintCode 795. 4种独特的路径(DFS)

1. 题目 一个机器人位于一个m*n的网格的左上角。 机器人可以在任何时间点移动任何方向&#xff0c;但是每个网格只能达到一次。机器人正试图到达网格的右下角。 有多少种可能的独特路径? 样例 1: 输入: 2 3 输出: 4样例 2: 输入: 3 3 输出: 122. 解题 暴力回溯即可 class …