题解 | #二叉树的最大深度#
二叉树的最大深度
https://www.nowcoder.com/practice/8a2b2bf6c19b4f23a9bdb9b233eefa73
递归秒了!
不过递归有点太偷懒了,所以又写了一个非递归的。
class Solution {
public:
int maxDepth(TreeNode* root) {
// write code here
if (!root)return 0;
if (root->left == nullptr && root->right == nullptr) return 1;
return 1 + max(maxDepth(root->left), maxDepth(root->right));
}
};
class Solution {
public:
int maxDepth(TreeNode* root) {
// write code here
if (!root)return 0;
int maxd = 1;
stack<TreeNode*> sk;
sk.push(root);
TreeNode* tmp;
while (!sk.empty()) {
if (sk.size() > maxd) maxd = sk.size();
tmp = sk.top();
if (tmp->left) {
sk.push(tmp->left);
tmp->left = NULL;
continue;
}
if (tmp->right) {
sk.push(tmp->right);
tmp->right = NULL;
continue;
}
sk.pop();
}
return maxd;
}
};

