欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-02-15 15:46:12
非递归就是在层次遍历的基础上加上个depth,len变量来记录即可,有点类似于BFS 用c++实现如下: ......

非递归就是在层次遍历的基础上加上个depth,len变量来记录即可,有点类似于bfs

用c++实现如下:


 

 

 1 int treedepth(treenode* proot)
 2     {
 3      queue<treenode*> q;
 4         if(!proot) return 0;
 5         q.push(proot);
 6         int depth=0;
 7         while(!q.empty()){
 8             int len=q.size();//队列的当前大小
 9             depth++;
10             while(len--){ //循环完就是一层都退出队列了
11                 treenode* temp=q.front();//表头
12                 q.pop();
13                 if(temp->left) q.push(temp->left);
14                 if(temp->right) q.push(temp->right);
15             }
16         }
17         return level;
18     }