文章目录
BM28 二叉树的最大深度
建议把层序遍历看懂,在看这个题。只要把层序遍历中存储每层节点的数组tmp去掉,存储最终遍历结果的二维数组去掉,加上一个记录高度的变量height即可。
层序遍历解析请看:https://blog.csdn.net/qq_46126258/article/details/123517663#BM26__111
代码
/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
class Solution {
public:
/**
*
* @param root TreeNode类
* @return int整型
*/
int maxDepth(TreeNode* root) {
// write code here
if(root==nullptr) return 0;//特判
queue<TreeNode *> q;
q.push(root);
int height=0;
while(!q.empty()){
int size = q.size();
while(size--){
TreeNode *t = q.front();
q.pop();
if(t->left) q.push(t->left);
if(t->right) q.push(t->right);
}
height++;
}
return height;
}
};