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

第一题 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);
}
相关推荐
尼尔森系4 小时前
排序与算法:希尔排序
c语言·算法·排序算法
AC使者4 小时前
A. C05.L08.贪心算法入门
算法·贪心算法
冠位观测者4 小时前
【Leetcode 每日一题】624. 数组列表中的最大距离
数据结构·算法·leetcode
sushang~4 小时前
leetcode203.移除链表元素
数据结构·链表
yadanuof5 小时前
leetcode hot100 滑动窗口&子串
算法·leetcode
可爱de艺艺5 小时前
Go入门之函数
算法
武乐乐~5 小时前
欢乐力扣:旋转图像
算法·leetcode·职场和发展
a_j585 小时前
算法与数据结构(子集)
数据结构·算法·leetcode
刃神太酷啦6 小时前
树(数据结构·)
数据结构·c++·蓝桥杯c++组
清水加冰6 小时前
【算法精练】背包问题(01背包问题)
c++·算法