104. 二叉树的最大深度
题目链接
104. 二叉树的最大深度 - 力扣(LeetCode)
思路
二叉树最大深度这道题用层序遍历的话可以用一个变量记录size更新的次数,15min解决。
class Solution {
public:int maxDepth(TreeNode* root) {//二叉树这道题用层序遍历的话可以用一个变量记录size更新的次数,//即为最大深度//若用递归法,没看代码随香录视频和文字版想不到题解queue<TreeNode*> que;int count = 0;//用count记录最大层数if (root != nullptr) que.push(root);while (!que.empty()) {int size = que.size();count++;while (size--) {TreeNode* node = que.front();que.pop();//vector<int> 用于存放数据if (node->left) que.push(node->left);if (node->right) que.push(node->right);}}return count;}
};
559. N 叉树的最大深度
题目链接
559. N 叉树的最大深度 - 力扣(LeetCode)
思路
思路同二叉树的最大深度,用层序遍历,同时用一个变量记录层数。6min bugfree
本人题解
class Solution {
public:int maxDepth(Node* root) {//这道题同二叉树的最大深度一样用层序遍历解决最好queue<Node*> que;int count = 0;//此变量用来记录N叉树的最大深度if (root != NULL) que.push(root);while (!que.empty()) {int sizeChildren = que.size();count++;while (sizeChildren--) {Node* nod = que.front();que.pop();for(int i = 0; i < nod->children.size(); i++) {if (nod->children[i]) que.push(nod->children[i]);}}}return count;}
};
111. 二叉树的最小深度
题目链接
111. 二叉树的最小深度 - 力扣(LeetCode)
思路
用一个变量记录第一个(既没有左子树也没有右子树的)节点所在的层数即可
class Solution {
public:int minDepth(TreeNode* root) {//二叉树的最小深度感觉也是可以用层序遍历做//用一个变量记录第一个(既没有左子树也没有右子树的)节点所在的层数即可queue<TreeNode*> que;if (root != nullptr) que.push(root);int count = 0;while (!que.empty()) {int size = que.size();count++;while (size--) {TreeNode* node = que.front();que.pop();if (node->left) que.push(node->left);if (node->right) que.push(node->right);if (!node->left && !node->right) {return count;}}}return count;}
};
222. 完全二叉树的节点个数
看了题解做的