给出一个所有元素以升序排序的单链表,将它转换成一棵高度平衡的二分查找树

您在真实的面试中是否遇到过这个题?
分析:就是一个简单的递归,只是需要有些链表的操作而已
代码:
/**
* Definition of ListNode
* class ListNode {
* public:
* int val;
* ListNode *next;
* ListNode(int val) {
* this->val = val;
* this->next = NULL;
* }
* }
* Definition of TreeNode:
* class TreeNode {
* public:
* int val;
* TreeNode *left, *right;
* TreeNode(int val) {
* this->val = val;
* this->left = this->right = NULL;
* }
* }
*/
class Solution {
public:
/**
* @param head: The first node of linked list.
* @return: a tree node
*/
TreeNode *sortedListToBST(ListNode *head) {
// write your code here
if(head==nullptr)
return nullptr;
int len = 0;
ListNode*temp = head;
while(temp){len++;temp = temp->next;};
if(len==1)
{
return new TreeNode(head->val);
}
else if(len==2)
{
TreeNode*root = new TreeNode(head->val);
root->right = new TreeNode(head->next->val);
return root;
}
else
{
len/=2;
temp = head;
int cnt = 0;
while(cnt<len)
{
temp = temp->next;
cnt++;
}
ListNode*pre = head;
while(pre->next!=temp)
pre = pre->next;
pre->next = nullptr;
TreeNode*root = new TreeNode(temp->val);
root->left = sortedListToBST(head);
root->right = sortedListToBST(temp->next);
return root;
}
}
};
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# LintCode
# 排序列表
# LintCode排序
# LintCode 堆化详解及实例代码
# 递归
# 链表
# 升序
# 希望能
# 您在
# 将它
# 谢谢大家
# 一棵
# 转换成
# 遇到过
# 素以
# write
# pre
# nbsp
# br
# cpp
# Definition
# class
# brush
# cnt
相关文章:
如何在Windows服务器上快速搭建网站?
广州建站公司哪家好?十大优质服务商推荐
外贸公司网站制作,外贸网站建设一般有哪些步骤?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
网站制作网站,深圳做网站哪家比较好?
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
建站主机选哪种环境更利于SEO优化?
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
如何在服务器上三步完成建站并提升流量?
网站制作说明怎么写,简述网页设计的流程并说明原因?
建站之星安装后如何自定义网站颜色与字体?
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
如何零基础开发自助建站系统?完整教程解析
制作电商网页,电商供应链怎么做?
制作国外网站的软件,国外有哪些比较优质的网站推荐?
如何在Golang中指定模块版本_使用go.mod控制版本号
制作网页的网站有哪些,电脑上怎么做网页?
大同网页,大同瑞慈医院官网?
,购物网站怎么盈利呢?
寿县云建站:智能SEO优化与多行业模板快速上线指南
网站制作企业,网站的banner和导航栏是指什么?
测试制作网站有哪些,测试性取向的权威测试或者网站?
常州企业网站制作公司,全国继续教育网怎么登录?
C++中引用和指针有什么区别?(代码说明)
制作网站的公司有哪些,做一个公司网站要多少钱?
C#如何在一个XML文件中查找并替换文本内容
大连网站设计制作招聘信息,大连投诉网站有哪些?
网站制作壁纸教程视频,电脑壁纸网站?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
贸易公司网站制作流程,出口贸易网站设计怎么做?
如何用腾讯建站主机快速创建免费网站?
如何在阿里云购买域名并搭建网站?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
如何通过网站建站时间优化SEO与用户体验?
小程序网站制作需要准备什么资料,如何制作小程序?
建站org新手必看:2024最新搭建流程与模板选择技巧
如何解决ASP生成WAP建站中文乱码问题?
装修招标网站设计制作流程,装修招标流程?
电脑免费海报制作网站推荐,招聘海报哪个网站多?
如何通过山东自助建站平台快速注册域名?
常州自助建站费用包含哪些项目?
建站之星微信建站一键生成小程序+多端营销系统
Swift中switch语句区间和元组模式匹配
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
如何在西部数码注册域名并快速搭建网站?
山东网站制作公司有哪些,山东大源集团官网?
*请认真填写需求信息,我们会在24小时内与您取得联系。