二叉树——104. 二叉树的最大深度
题目:
思路:
还是老样子,就是看你用BFS还是DFS。
DFS:递归层数较大时有风险。就是递归,然后看左子树和右子树的maxdepth然后别忘了加1。
BFS:和右视图差不多,还是借助队列存放一层元素,还要设置个变量depth记录层数。这里我们选择BFS
代码:
class Solution {
public:
int maxDepth(TreeNode* root) {
if(root == NULL) return 0;
queue<TreeNode*> que;
que.push(root);
int depth = 0;
while(!que.empty()){
int size = que.size();
// 层数加一
depth++;
for(int i=0;i<size;i++){
TreeNode* node = que.front();
que.pop();
if(node->left) que.push(node->left);
if(node->right) que.push(node->right);
}
}
return depth;
}
};