题解 | #二叉树的最大深度#
二叉树的最大深度
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; } };