刷刷刷 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;
}
}

附:学习资料链接

posted @   blacksonny  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2018-01-23 mac 安装 python mysqlclient 遇到的问题及解决方法
点击右上角即可分享
微信分享提示