二叉树递归题目(一)

一:计算布尔二叉树的值

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;  
    }
};
相关推荐
地平线开发者15 小时前
SparseDrive 模型导出与性能优化实战
算法·自动驾驶
董董灿是个攻城狮15 小时前
大模型连载2:初步认识 tokenizer 的过程
算法
地平线开发者15 小时前
地平线 VP 接口工程实践(一):hbVPRoiResize 接口功能、使用约束与典型问题总结
算法·自动驾驶
罗西的思考15 小时前
AI Agent框架探秘:拆解 OpenHands(10)--- Runtime
人工智能·算法·机器学习
HXhlx19 小时前
CART决策树基本原理
算法·机器学习
Wect19 小时前
LeetCode 210. 课程表 II 题解:Kahn算法+DFS 双解法精讲
前端·算法·typescript
颜酱20 小时前
单调队列:滑动窗口极值问题的最优解(通用模板版)
javascript·后端·算法
肆忆_1 天前
# 用 5 个问题学懂 C++ 虚函数(入门级)
c++
不想写代码的星星1 天前
虚函数表:C++ 多态背后的那个男人
c++
Gorway1 天前
解析残差网络 (ResNet)
算法