刷刷刷 Day 17 | 404. 左叶子之和
404. 左叶子之和
LeetCode题目要求
给定二叉树的根节点 root ,返回所有左叶子之和。

示例
输入: root = [3,9,20,null,null,15,7] 输出: 24 解释: 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24
解题思路
本题主要是要找到左叶子节点,然后计算他们的和。
那么怎么找到左叶子节点呢?如果一个节点A有左子节点B,并且左子节点既没有左子节点也没有右子节点,那么节点B就是一个左叶子节点。
需要重点理解这里的叶子节点,及是用后序遍历操作
上代码
class Solution { public int sumOfLeftLeaves(TreeNode root) { if (root == null) { return 0; } // 递归左子树 int leftVal = sumOfLeftLeaves(root.left); // 递归右子树 int rightVal = sumOfLeftLeaves(root.right); int midVal = 0; // 如果左节点不为空,且节点的左右节点都为空,说明是叶子节点,这是取这个节点的值 if (root.left != null && root.left.left == null && root.left.right == null) { midVal = root.left.val; } // 计算节点和 return midVal + leftVal + rightVal; } }
附:学习资料链接
分类:
算法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2018-01-23 mac 安装 python mysqlclient 遇到的问题及解决方法