栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

LeetCode 404:左叶子之和

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

LeetCode 404:左叶子之和

LeetCode 404

题目:

思路:

当前节点是无法判断左叶子节点的,要使用父节点来判断左子节点是不是左叶子!

使用后序遍历。

递归三部曲:

  1. 参数为根节点,返回值为数值之和,所以为int
  2. 确定终止条件
    依然是 if (root == NULL) return 0;
  3. 确定单层递归的逻辑
    当遇到左叶子节点的时候,记录数值,然后通过递归求取左子树左叶子之和,和 右子树左叶子之和,相加便是整个树的左叶子之和。
    判断左叶子的条件:root.left!=null && root.left.left==null && root.left.right==null

用left和right接住子树递归的结果,是递归整棵树
是回溯思想。

Java实现:
class Solution {
    public int sumOfLeftLeaves(TreeNode root) {
        // 和子树有关,后序遍历
        if(root==null){
            return 0;
        }
        // 有值递归
        int left=sumOfLeftLeaves(root.left);
        int right=sumOfLeftLeaves(root.right);

        // 后序遍历
        int mid=0; // 当前节点的左叶子节点的值
        if(root.left!=null && root.left.left==null && root.left.right==null){ // 判断是否为左叶子
            mid=root.left.val;
        }
        int sum=left+right+mid;
        return sum;
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/939394.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号