博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
高度最小的BST
阅读量:6435 次
发布时间:2019-06-23

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

题目描述

对于一个元素各不相同且按升序排列的有序序列,请编写一个算法,创建一棵高度最小的二叉查找树。

给定一个有序序列int[] vals,请返回创建的二叉查找树的高度。

1 class MinimalBST  2 { 3     public: 4     TreeNode *BulidBST(vector
vt,int l,int r) 5 { 6 if(l>r)return NULL; 7 int mid=l+(r-l)/2; 8 TreeNode *root=new TreeNode(vt[mid]); 9 root->left=BulidBST(vt,l,mid-1);10 root->right=BulidBST(vt,mid+1,r);11 return root;12 }13 14 int depth(TreeNode *root)15 {16 if(root==NULL)17 {18 return 0;19 }20 int l=depth(root->left)+1;21 int r=depth(root->right)+1;22 return ((l>r)?(l):(r));23 } 24 25 26 int buildMinimalBST(vector
vals) 27 {28 int lf=0;29 int rg=vals.size()-1;30 TreeNode *T = BulidBST(vals,lf,rg);31 return depth(T);32 }33 };

 

转载于:https://www.cnblogs.com/achao123456/p/7570626.html

你可能感兴趣的文章
【CJOJ】Contest4 - A+B Series
查看>>
Python中四种交换两个变量的值的方法
查看>>
ora-01033:oracle initialization or shutdown in progress 解决方法
查看>>
移动自动化相关名词解释
查看>>
微信开发者工具 快捷键
查看>>
monkey测试===修改adb的默认端口
查看>>
AsyncTask和Handler处理异步消息
查看>>
Scheme 中的 pair 和 list 简述
查看>>
iOS AVAssetExportSession 视频剪切、合并、压缩
查看>>
我收藏的技术知识图(每张都是大图)
查看>>
Spring Boot制作启动图案
查看>>
《Linux内核设计与实现》读书笔记(十一)- 定时器和时间管理
查看>>
hdu Oil Deposits
查看>>
彻底理解javascript中的this指针
查看>>
SAS去空格
查看>>
MySQL用户和权限管理
查看>>
Spring Cloud构建微服务架构(二)服务消费者
查看>>
这些老外的开源技术养活了一票国产软件
查看>>
Maven实战(六)--- dependencies与dependencyManagement的区别
查看>>
创业者应该有的5个正常心态(转)
查看>>