今日任务:104.二叉树的最大深度 559.n叉树的最大深度; 111.二叉树的最小深度;222.完全二叉树的节点个数
卡哥建议:迭代法,大家可以直接过,二刷有精力的时候 再去掌握迭代法。
重点:
参考链接:代码随想录:代码随想录 (programmercarl.com)
104.二叉树的最大深度(优先掌握递归)
题目讲解(全):代码随想录
题目建议:什么是深度,什么是高度,如何求深度,如何求高度,这里有关系到二叉树的遍历方式。大家 要先看视频讲解,就知道以上我说的内容了,很多录友刷过这道题,但理解的还不够。
刷题链接:力扣题目链接
//最大深度--深度回溯的过程----递归
class solution {
public:
最大深度--深度回溯的过程----递归
int result;
void getdepth(TreeNode* node, int depth) {
result = depth > result ? depth : result; // 中
//终止条件
if (node->left == NULL && node->right == NULL) return ;
if (node->left) { // 左
depth++; // 深度+1
getdepth(node->left, depth);//depth一直在用,需要--,回到本身的值
depth--; // 回溯,深度-1
}
if (node->right) { // 右
depth++; // 深度+1
getdepth(node->right, depth);
depth--; // 回溯,深度-1
}
return ;
}
int maxDepth(TreeNode* root) {
result = 0;
if (root == NULL) return result;
getdepth(root, 1);
return result;
}
};
简易
class Solution {
public:
//最大深度--深度回溯的过程----递归
int result;
void getDepth(TreeNode* root,int depth){
result=result > depth ? result:depth;
//终止条件
if(root->left == NULL &&root->right == NULL)return ;
if(root->left){
getDepth(root->left,depth+1);//+在形参,不改变本身的depth
}
if(root->right){
getDepth(root->right,depth+1);
}
}
int maxDepth(TreeNode* root) {
result = 0;
if(root == NULL)return result;
getDepth(root,1);
return result;
}
};
//最大深度--迭代法---层序遍历-顺带求解层数--深度
class Solution {
public:
//最大深度--迭代法---层序遍历-顺带求解层数--深度
int maxDepth(TreeNode* root) {
int depth = 0;
if(root == NULL)return depth;
queue<TreeNode*> que;
que.push(root);
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;
}
};
视频讲解:二叉树的高度和深度有啥区别?究竟用什么遍历顺序?很多录友搞不懂 | 104.二叉树的最大深度
看到题目的第一思路:
看完代码随想录之后的想法:
自己实现过程中遇到哪些困难:
每日精华:
类似题目:
559.n叉树的最大深度;(优先掌握递归)
题目讲解(全):代码随想录 (programmercarl.com)
题目建议:
刷题链接:力扣题目链接
视频讲解:
看到题目的第一思路:
看完代码随想录之后的想法:
自己实现过程中遇到哪些困难:
每日精华:
类似题目:
111.二叉树的最小深度(优先掌握递归)
题目讲解(全):代码随想录
题目建议:先看视频讲解,和最大深度 看似差不多,其实 差距还挺大,有坑。
刷题链接:
视频讲解:
看到题目的第一思路:
看完代码随想录之后的想法:
自己实现过程中遇到哪些困难:
每日精华:
类似题目:
222.完全二叉树的节点个数(优先掌握递归)
题目讲解(全):代码随想录
题目建议:需要了解,普通二叉树 怎么求,完全二叉树又怎么求
刷题链接:
视频讲解:
看到题目的第一思路:
看完代码随想录之后的想法:
自己实现过程中遇到哪些困难:
每日精华:
类似题目:
今日收获,记录一下自己的学习时长:
优质文章:学习参考: