news 2026/4/15 13:37:23

leetcode 1382. 将二叉搜索树变平衡 中等

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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] 也是一个可行的构造方案。

示例 2:

输入:root = [2,1,3]输出:[2,1,3]

提示:

  • 树节点的数目在[1, 10^4]范围内。
  • 1 <= Node.val <= 10^5

分析:先对原来的二叉搜索树进行中序遍历,得到递增序列。之后令中点作为新平衡树的根,再递归地建立根的左、右子树。

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */ class Solution { public: void inorder(TreeNode* node,vector<int>&val) { if(node->left!=NULL)inorder(node->left,val); val.push_back(node->val); if(node->right!=NULL)inorder(node->right,val); } TreeNode* build(vector<int>&val,int l,int r) { if(l==r)return NULL; int mid=(l+r)/2; TreeNode *p=(TreeNode*)malloc(sizeof(TreeNode)); p->val=val[mid];p->left=build(val,l,mid);p->right=build(val,mid+1,r); return p; } TreeNode* balanceBST(TreeNode* root) { vector<int>val; inorder(root,val); int n=val.size(); TreeNode *root_new=build(val,0,n); return root_new; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 15:07:31

客流暴涨350%!华润万家华北调改店5连开,掀起“品质生活“潮

客流暴涨350%&#xff01;华润万家华北调改店5连开&#xff0c;掀起“品质生活“潮引言春节未至&#xff0c;华北的零售市场却早已火热起来。其中&#xff0c;华润万家就是最具热力的品牌之一。2月6日&#xff0c;华润万家天津湾凯德MALL店正式焕新亮相&#xff0c;这是华润万家…

作者头像 李华
网站建设 2026/4/9 18:12:37

【llm】——计算llm的ppl损失

代码&#xff1a; # 浮点结果计算ppl计算from transformers import AutoModelForCausalLM, AutoTokenizer import json from tqdm import tqdm import torch from torch.nn import CrossEntropyLossmodel_name "/data1/huf/Qwen3-0.6B" json_file "/data…

作者头像 李华
网站建设 2026/4/14 19:36:54

【HTML】五子棋AI对战代码

我用夸克网盘给你分享了「五子棋源码」链接&#xff1a;https://pan.quark.cn/s/3590e43e8fa7 通过网盘分享的文件&#xff1a;五子棋代码 链接: https://pan.baidu.com/s/17dmCdrjcuXipFDhuUeaFLw?pwdid8r 提取码: id8r 下面是AI帮我总结的代码描述&#xff1a; 代码结构 1. …

作者头像 李华
网站建设 2026/4/14 17:18:18

CANN图编译器与执行器GE的架构设计与性能优化技术深度解析

CANN图编译器与执行器GE的架构设计与性能优化技术深度解析 cann 组织链接&#xff1a;https://atomgit.com/cann ge仓库解读链接&#xff1a;https://atomgit.com/cann/ge 在深度学习模型的部署和执行过程中&#xff0c;如何将高级神经网络模型高效地映射到底层硬件上&#x…

作者头像 李华
网站建设 2026/4/10 7:56:47

雷达静压水位计

一、设备概述与应用背景 雷达静压水位计是深圳市恒星物联科技有限公司研发的一款采用扩散硅和雷达双元件进行液位测量的液位智能监测仪表&#xff0c;专门为地表或管网水的非接触式液位测量设计。该产品采用微功耗设计&#xff0c;高度集成了毫米波雷达测距、压力传感、RTU数据…

作者头像 李华
网站建设 2026/4/15 5:20:19

【AI开发】—— AI开发基础之LLM、Agent、MCP、Skill

LLM、Agent、MCP、Skill四大核心概念辨析&#xff5c;从基础模型到多智能体落地 随着大模型智能体&#xff08;Agent&#xff09;技术的快速迭代&#xff0c;LLM、Agent、MCP、Skill这四个概念频繁出现在技术文档、开发实践和研究论文中。很多开发者和研究者在入门阶段容易混淆…

作者头像 李华