劈叉都会还不会下腰吗?(二叉树经典面试题详解)

简介: 劈叉都会还不会下腰吗?(二叉树经典面试题详解)

1.经典选择题

①.某完全二叉树按层次输出(同一层从左到右)的序列为 ABCDEFGH 。该完全二叉树的前序序列为( A)


A. ABDHECFG


B. ABCDEFGH


C. HDBEAFCG


D. HDEBFGCA


分析:


q1.png


②.二叉树的先序遍历和中序遍历如下:先序遍历:EFHIGJK;中序遍历:HFIEJKG.则二叉树根结点为 (A)


A. E


B. F


C. G


D. H


分析:

q2.png



③.设一课二叉树的中序遍历序列:badce,后序遍历序列:bdeca,则二叉树前序遍历序列(D)。


A. adbce


B. decab


C. debac


D. abcde


分析:

q3.png



2.经典OJ题

①二叉树的最大深度:力扣


给定一个二叉树,找出其最大深度:


二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。


说明: 叶子节点是指没有子节点的节点。


示例:

给定二叉树 [3,9,20,null,null,15,7]

q4.png



返回它的最大深度 3


分析:

w1.png



代码:


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

w2.png

w3.png




代码:


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);
}


本期二叉树也就完美落幕了。。。


       请期待下篇博客排序算法,你知道哪些???


相关文章
|
6月前
|
C++
二叉树进阶面试题(精华总结)【C++版本】
二叉树进阶面试题(精华总结)【C++版本】
|
6月前
数据结构之二叉树及面试题讲解(二)
数据结构之二叉树及面试题讲解
51 0
|
6月前
力扣面试经典题之二叉树
力扣面试经典题之二叉树
44 0
|
存储 算法
【数据结构】 二叉树面试题讲解->叁
【数据结构】 二叉树面试题讲解->叁
【数据结构】 二叉树面试题讲解->壹I(二)
【数据结构】 二叉树面试题讲解->壹I(二)
|
2月前
|
算法
二叉树面试题
本文介绍了二叉树相关的几个经典算法问题。首先讲解了如何判断两棵树是否完全相同(LeetCode 100),并给出了代码示例。接着讨论了如何判断一棵树是否是另一棵树的子树(LeetCode 572),详细分析了子树的定义及判断方法。然后介绍了翻转二叉树(LeetCode 226)的实现方法,即在遍历时交换每个节点的左右子树。随后探讨了如何判断一棵树是否是对称的(LeetCode 101),通过对左右子树的递归比较来实现。最后分析了平衡二叉树的概念(LeetCode 110)及判断方法,并给出了优化后的代码示例。此外,还简要介绍了二叉树遍历及二叉树最近公共祖先(LeetCode 236)的问题
27 6
二叉树面试题
|
23天前
|
算法 Java
JAVA 二叉树面试题
JAVA 二叉树面试题
14 0
|
6月前
【一刷《剑指Offer》】面试题 23:从上往下打印二叉树
【一刷《剑指Offer》】面试题 23:从上往下打印二叉树
|
6月前
【一刷《剑指Offer》】面试题 19:二叉树的镜像
【一刷《剑指Offer》】面试题 19:二叉树的镜像
|
6月前
【一刷《剑指Offer》】面试题 6:重建二叉树
【一刷《剑指Offer》】面试题 6:重建二叉树