文章图片
文章图片
在灯红酒绿的城市里,
一位喝的烂醉的小白程序猿猴,
游到马路的草丛边突然捡到了一个月光宝盒,
打开宝盒只见一卷发光的卷轴
文章图片
,
【数据结构|劈叉都会还不会下腰吗((二叉树经典面试题详解))】上面扭曲的写着几个大字,想拿大offer,记得多洗刷刷(刷题请看阿紫姐姐)
目录:
文章图片
1.经典选择题
文章图片
2.经典OJ题
文章图片
1.经典选择题
①.某完全二叉树按层次输出(同一层从左到右)的序列为 ABCDEFGH 。该完全二叉树的前序序列为( A)
A. ABDHECFG
B. ABCDEFGH
C. HDBEAFCG
D. HDEBFGCA
分析:
文章图片
②.二叉树的先序遍历和中序遍历如下:先序遍历:EFHIGJK; 中序遍历:HFIEJKG.则二叉树根结点为 (A)
A. E
B. F
C. G
D. H
分析:
文章图片
③.设一课二叉树的中序遍历序列:badce,后序遍历序列:bdeca,则二叉树前序遍历序列(D)。
A. adbce
B. decab
C. debac
D. abcde
分析:
文章图片
文章图片
2.经典OJ题
①二叉树的最大深度:力扣
给定一个二叉树,找出其最大深度:
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例:
给定二叉树
[3,9,20,null,null,15,7]
文章图片
返回它的最大深度 3
分析:
文章图片
代码:
int maxDepth(struct TreeNode* root){
if(root == NULL)
return 0;
int left = maxDepth(root->left);
int right = maxDepth(root->right);
return left > right ? left + 1 : right + 1;
}
②平衡二叉树:力扣
给定一个二叉树,判断它是否是高度平衡的二叉树
本题中,一棵高度平衡二叉树定义为:
一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1
文章图片
文章图片
代码:
int maxDepth(struct TreeNode* root){
if(root == NULL)
return 0;
int left = maxDepth(root->left);
int right = maxDepth(root->right);
return left > right ? left + 1 : right + 1;
}bool isBalanced(struct TreeNode* root){
if(root == NULL)
return true;
int left = maxDepth(root->left);
int right = maxDepth(root->right);
return abs(left - right) < 2 && isBalanced(root->left) && isBalanced(root->right);
}
本期二叉树也就完美落幕了。。。
请期待下篇博客排序算法,你知道哪些???
文章图片
QQ:2186529582
跟我一起get更多学习秘诀吧!!!
推荐阅读
- 数据结构|排序算法(七大经典排序算法)
- #|【算法小结】尺取法及例题(Subsequence,Jessica’s Reading Problem)
- 刷遍PAT|1051 复数乘法 (15 分)
- OpenCV3|【OpenCV】分水岭算法及实战
- 机器学习|推荐算法——矩阵分解
- 推荐算法|相似度计算(2)——皮尔逊相关系数
- c语言|leetcode707 设计链表 (C语言实现)
- CSSE2310
- 行为序列建模|【序列建模】DIN深度兴趣网络