【算法集训】基础数据结构:七、树

第一题 2236. 判断根结点是否等于子结点之和

这一题很简单,只有三个节点,判断就可以了

c 复制代码
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */


bool checkTree(struct TreeNode* root){
    return root->left->val + root->right->val == root->val;
}

第二题 104. 二叉树的最大深度

二叉树的最主要操作需要用到递归,这题求最大深度也是如此。

我差不多懂了递归的一个实现思想,按这题来说,maxDepth()求的就是节点的最大深度;先假设这个函数可以实现,所以我们可以调用这个函数直接将root->leftroot->right的最大深度求出来,然后再加根节点的一层, 不就是求的最大深度吗。

c 复制代码
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
 
int max(int a, int b) {
    return a > b ? a : b;
}

int maxDepth(struct TreeNode* root) {
    if(root == NULL) return 0;

    return 1 + max(maxDepth(root->left), maxDepth(root->right)); 
}

第三题 LCR 175. 计算二叉树的深度

此题和上题相同

c 复制代码
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
int calculateDepth(struct TreeNode* root) {
    if(root == NULL) return 0;
    int ldep = calculateDepth(root->left);
    int rdep = calculateDepth(root->right);

    int res = ldep > rdep ? ldep : rdep;
    return res + 1;
}

第四题 2331. 计算布尔二叉树的值

c 复制代码
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
bool evaluateTree(struct TreeNode* root) {
    if(root->val == 0 || root->val == 1) return root->val;

    if(root->val == 2) {
        return evaluateTree(root->right) || evaluateTree(root->left);
    }
        return evaluateTree(root->right) && evaluateTree(root->left);
}
相关推荐
颜酱1 小时前
一步步实现字符串计算器:从「转整数」到「带括号与优化」
javascript·后端·算法
CoovallyAIHub20 小时前
语音AI Agent编排框架!Pipecat斩获10K+ Star,60+集成开箱即用,亚秒级对话延迟接近真人反应速度!
深度学习·算法·计算机视觉
NineData21 小时前
数据库管理工具NineData,一年进化成为数万+开发者的首选数据库工具?
运维·数据结构·数据库
木心月转码ing1 天前
Hot100-Day14-T33搜索旋转排序数组
算法
会员源码网1 天前
内存泄漏(如未关闭流、缓存无限增长)
算法
颜酱1 天前
从0到1实现LFU缓存:思路拆解+代码落地
javascript·后端·算法
颜酱1 天前
从0到1实现LRU缓存:思路拆解+代码落地
javascript·后端·算法
CoovallyAIHub2 天前
Moonshine:比 Whisper 快 100 倍的端侧语音识别神器,Star 6.6K!
深度学习·算法·计算机视觉
CoovallyAIHub2 天前
速度暴涨10倍、成本暴降6倍!Mercury 2用扩散取代自回归,重新定义LLM推理速度
深度学习·算法·计算机视觉