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

求二叉树的高度(递归和非递归)

假设二叉树采用二叉链表存储结构,设计一个算法求二叉树的高度。

递归:

int getTreeHight(BiTree T){if(T==NULL){return 0;}else {int lh = getTreeHight(T->lchild);int rh = getTreeHight(T->rchild);return (lh>rh?lh:rh)+1;}}

时间复杂度O(n);空间复杂度O(n)

非递归

思想:先获得当前层的节点个数,遍历完队列中的节点就是处理完该层。这时候队列中所有节点就是下一层的。每处理一层,层数+1

int getTreeHight(BTree T){//树空 if(T==NULL){return 0;}//初始化队列 BTiree Q[MaxSize];int rear=-1,front=-1;Q[++rear]=T;//根入队 BTiree p;int last=0;//指向当前层最后一个结点 int count=0;//记录层数 while(front<rear){p=Q[++front];if(p->lchild){Q[++rear]=p->lchild;}if(p->rchild){Q[++rear]=p->rchild;}//当前层结点访问完毕,rear刚好指向下一层的最后一个结点 if(front==last){count++;last=rear;//指向下一层最后一个结点 }}return count;
}

时间复杂度O(n);空间复杂度O(n) 


http://www.mrgr.cn/news/36312.html

相关文章:

  • JDK1.8与JDK17相互切换
  • 市面第一款 C++ 版本的U盘装机软件(即将上线)
  • 自然场景文本定位系统源码分享
  • 影刀RPA实战:网页爬虫之天猫商品数据
  • 大四党必备!推荐6款ai写作免费一键生成器在线网站
  • 掌握信息安全的钥匙:CISSP官方学习指南(OSG)第9版中文版
  • 降准降息一揽子措施点燃 A 股激情,4% 大涨之后趋势深度剖析
  • Codeforces Round 971 (Div. 4)A-G1题解
  • Redis缓存技术 基础第一篇(快速入门与安装部署)
  • 机器学习西瓜书笔记(十一) 第十一章特征选择与稀疏学习+代码
  • mac终端打开报complete 13 command not found compdef异常处理以及命令补全功能实现
  • 领导让部署一个系统服务,我该怎么弄?
  • 计算机视觉算法学习路线
  • 力扣 困难 25.K个一组反转链表
  • 新买的笔记本电脑如何打开和使用显示卡的问题
  • OpenHarmony(鸿蒙南向)——平台驱动指南【DAC】
  • python爬虫bs4库的用法
  • 字符串的join和os.path.join()
  • 一个示例了解什么是 API 集成
  • MICS:PythonJail沙箱逃逸(持续更新中)