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

Day43 代码随想录打卡|二叉树篇---左叶子之和

题目(leecode T404):

给定二叉树的根节点 root ,返回所有左叶子之和。

方法:

迭代法:计算所有的左叶子节点,那我们就必然要找到所有的左叶子节点。那么怎么找呢?如何针对cur->left == NULL&&cur->right ==NULL的话只能判断当前节点是叶子节点,而无法判断出具体是左还是右。因此我们需要从左叶子节点的父节点进行判断,即cur->left != NULL&&cur->left == NULL&&cur->right ==NULL,这样的节点的左孩子结点就是一个左叶子节点。我们这样就确定好了找到左叶子节点的判断逻辑。下面分析迭代的三部曲。

1:确定传入的参数和返回值,传入的参数就是要处理的树节点,返回值是左叶子节点的数值之和,因此需要为int,进行迭代累加得到的就是做叶子节点的和。

2:确定终止条件,当我们遍历到了空节点时,肯定是没有左孩子结点了,就需要终止。

3:确定单层的处理逻辑,当我们找到了左叶子节点时,就记录左叶子节点的值,同时递归根节点的左右子树,最后将两值相加即可得到该树的左叶子节点之和。

题解:

class Solution {
public:int sumOfLeftLeaves(TreeNode* root) {if(root == NULL) return 0;            //终止逻辑int leftValue = sumOfLeftLeaves(root->left);     //递归左子树if(root->left != NULL && root->left->left == NULL && root->left->right == NULL){  //找到左叶子节点就记录其数值leftValue = root->left->val;}int rightValue = sumOfLeftLeaves(root->right);    //递归右子树int sum = leftValue + rightValue;return sum;}
};

http://www.lryc.cn/news/364090.html

相关文章:

  • 微信小程序动画
  • js, ellipsis属性, 超出宽度自动省略... , 并且显示2行
  • ucharts自定义添加tooltip悬浮框显示项内容且换行
  • Mongo 地理位置查询:海量密集点转换成聚合信息
  • bpmn+vue 中文文档
  • React Router v5 和 v6 中,路由对象声明方式有什么区别?
  • 【全开源】知识库文档系统(ThinkPHP+FastAdmin)
  • Python赋能自然语言处理,解锁通往AI的钥匙
  • Ktor库的高级用法:代理服务器与JSON处理
  • VS2017配置OpenCV4.5.1
  • phpstudy配置的站点不能访问了
  • Java Web学习笔记2——Web开发介绍
  • 从零开始实现自己的串口调试助手(3) - 显示底部收发,优化串口打开/关闭
  • 更改Web网站设计——css和css框架
  • 持续监控和优化的简单介绍
  • 针对硅基氮化镓高电子迁移率晶体管(GaN-HEMT)的准物理等效电路模型,包含基板中射频漏电流的温度依赖性
  • 基于websocket与node搭建简易聊天室
  • DevOps全面综述:从概念到实践
  • [C++]vector的模拟实现
  • 【云原生】Kubernetes----POD控制器
  • Java环境配置(超详细)
  • 【操作系统】(详细理解进程的状态)执行状态、就绪状态、阻塞状态、挂起状态
  • C++ -- string常用接口的底层实现
  • 怎么做好企业短信服务呢?(文字短信XML接口示例)
  • 鸿蒙小案例-音乐播放器
  • 语言模型测试系列【9】
  • 优思学院|质量工程师工资不高怎么办?
  • 【面向就业的Liux基础】从入门到熟练,探索Linux的秘密(一)
  • 高效数据处理的前沿:【C++】、【Redis】、【人工智能】与【大数据】的深度整合
  • Vitis HLS 学习笔记--控制驱动与数据驱动混合编程