当前位置: 首页 > article >正文

左叶子之和(力扣404)

这道题需要将左右子树的左叶子结点之和不断返回给该左右子树的父节点,这是典型的后序遍历。如果大家对于二叉树的遍历不熟悉的话,可以先去看一下我的关于二叉树遍历的博客。否则直接看这道题是很容易懵逼的。熟悉了二叉树的遍历之后,大家可以结合下面的代码以及注释理解这道题是如何处理的。

代码及注释如下:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    int travel(TreeNode* cur){
        //终止条件:遍历到空节点,返回节点数值0
        if(cur == NULL) return 0;
        //这段代码的意义是提前退出递归(叶子结点返回空节点的和,所以可以直接返回0),可有可无
        //if(cur -> left == NULL && cur -> right == NULL) return 0;
        int sum1 = travel(cur -> left);//递归左子树
        int sum2 = travel(cur -> right);//递归右子树
        //处理逻辑:父节点的左右子树为左叶子节点时,可以直接得到左子树左叶子结点之和
        //最后返回左右子树左叶子节点之和
        if(cur -> left != NULL && cur -> left -> left == NULL && cur -> left -> right == NULL){
            sum1 = cur -> left -> val;
        }
        return sum1 + sum2;
    }
    int sumOfLeftLeaves(TreeNode* root) {
        int sum = travel(root);
        return sum;
    }
};


http://www.kler.cn/a/517201.html

相关文章:

  • 【真机调试】前端开发:移动端特殊手机型号有问题,如何在电脑上进行调试?
  • 使用 Babylon.js 开发时如何通过 CSS 实现 UI 自适应
  • Markdown Viewer 浏览器, vscode
  • Gin 学习笔记
  • 状态模式——C++实现
  • 使用HTML5 Canvas 实现呼吸粒子球动画效果的原理
  • 【小米AI实践】NLP 技术在小米语音助手中的应用
  • TVM框架学习笔记
  • Netty来创建一个TCP服务器,分包上传语音文件的处理
  • 数据结构(Java)——二叉树
  • 机器人领域中的AI
  • 计算机毕业设计Python电商品推荐系统 商品比价系统 电商比价系统 商品可视化 商品爬虫 机器学习 深度学习 京东爬虫 国美爬虫 淘宝爬虫 大数据
  • SpringBoot集成OpenFeign,实现服务间的相互调用
  • 正向代理(动态 IP 代理)和反向代理
  • 汽车钥匙发展史
  • Element修改表格结构样式集合(后续实时更新)
  • Spring Security框架简单搭建
  • 智能手机“混战”2025:谁将倒下而谁又将突围?
  • AI评估新范式:从性能至信任的转变
  • 【python写个可以运行的2048小游戏】
  • 分布式存储的技术选型之HDFS、Ceph、MinIO对比
  • css之多边形 clip-path
  • 使用Visual Studio Code配置C/C++开发环境的全面指南
  • 计算机网络三张表(ARP表、MAC表、路由表)总结
  • MATLAB中alphanumericsPattern函数用法
  • windows下部署安装 ELK,nginx,tomcat日志分析