非递归就是在层次遍历的基础上加上个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 }
原文链接: https://www.cnblogs.com/daoko/p/11107877.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/297982
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!