二叉树递归题目(一)

一:计算布尔二叉树的值

1.1题目

题目链接:https://leetcode.cn/problems/evaluate-boolean-binary-tree/description/


1.2算法原理


1.3代码

cpp 复制代码
class Solution {
public:
    bool evaluateTree(TreeNode* root) 
    {
        if(root->right == nullptr)
            return root->val;

        bool leftval = evaluateTree(root->left);
        bool rightval = evaluateTree(root->right);

        return root->val == 2 ?  rightval | leftval : rightval & leftval;
    }
};

二:求根节点到叶节点数字之和

2.1题目

题目链接:https://leetcode.cn/problems/sum-root-to-leaf-numbers/description/


2.2算法原理


2.3代码

cpp 复制代码
class Solution {
public:
    int sumNumbers(TreeNode* root) {
        return dfs(root,0);
    }

    int dfs(TreeNode* root,int presum)
    {
        int sum = presum * 10+ root->val;

        if(root->left == nullptr && root->right == nullptr)
            return sum;
        
        int leftsum = 0, rightsum = 0;
        if(root->left)
            leftsum = dfs(root->left,sum);
        if(root->right)
            rightsum = dfs(root->right,sum);

        return leftsum + rightsum;
    }
};

三:二叉树剪枝

3.1题目

题目链接:https://leetcode.cn/problems/binary-tree-pruning/


3.2算法原理


3.3代码实现

cpp 复制代码
class Solution {
public:
    TreeNode* pruneTree(TreeNode* root) 
    {
        if(root == nullptr)
            return nullptr;

        root->left =  pruneTree(root->left);
        root->right = pruneTree(root->right);

        if(root->val == 0 && root->left == nullptr && root->right == nullptr)
        {
            //delete root;//内存泄漏,但是如果节点不是new出来的delete会报错
            root = nullptr;
        }
        return root;  
    }
};
相关推荐
顾北顾3 小时前
多头注意力机制
人工智能·深度学习·算法
H178535090963 小时前
SolidWorks_基于草图的实体特征20_特征错误排查
算法·3d建模·solidworks
hujinyuan201604 小时前
2025年12月中国电子学会青少年机器人技术等级考试试卷(二级) 真题+答案
人工智能·算法·机器人
玖玥拾4 小时前
C/C++ 基础笔记(十三)继承
c语言·c++·继承
bIo7lyA8v5 小时前
算法复杂度评估的实验统计方法与可视化的技术8
算法
李老师讲编程5 小时前
中国电子学会图形化2020.12月Scratch三级考级题
算法·scratch·信息学奥赛·图形化编程·scratch素材
ao-weilai5 小时前
C++:哈希表
c++·哈希算法·散列表
汉克老师5 小时前
GESP7级C++考试语法知识(二、指数函数(1、pow() 函数)
c++·指数函数·pow·gesp7级·精度误差
退休倒计时5 小时前
【每日一题】LeetCode 53. 最大子数组和 TypeScript
数据结构·算法·leetcode·typescript