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

第一题 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);
}
相关推荐
8Qi84 小时前
回文子串(Palindromic Substrings)—— 题解
算法·leetcode·职场和发展·动态规划
小宋加油啊8 小时前
机械臂抓取物体 PVN3D算法调研学习
学习·算法·3d
lqqjuly8 小时前
前沿算法深度解析(一)
算法
小欣加油9 小时前
leetcode1926 迷宫中离入口最近的出口
数据结构·c++·算法·leetcode·职场和发展
happymaker062611 小时前
LeetCodeHot100——42.接雨水
算法
阿正的梦工坊12 小时前
【Rust】07-错误处理:Option、Result 与 ? 运算符
开发语言·算法·rust
烬羽12 小时前
从零理解树与二叉树:用 JS 带你手撕遍历和递归
javascript·数据结构
YHL12 小时前
🚀从零理解树与二叉树 —— 概念、实现与遍历
前端·javascript·数据结构
JieE21212 小时前
JS 到底有多少种数据类型?从ECMA规范到内存本质,一文彻底搞懂
javascript·数据结构·面试