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

LeetCode404.左叶子树之和————————java

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

LeetCode404.左叶子树之和————————java

题目描述:

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

示例 1:

输入: root = [3,9,20,null,null,15,7] 输出: 24 解释: 在这个二叉树中,有两个左叶子,分别是 9 和
15,所以返回 24 示例 2:

输入: root = [1] 输出: 0

解法一:迭代遍历+判断

class Solution {

    public int sumOfLeftLeaves(TreeNode root) {
           Stack stack=new Stack<>();
           if(root==null)
           {
               return 0;
           }
           int result=0;
           stack.push(root);
           while(!stack.isEmpty())
           {
               TreeNode node=stack.pop();
               if(node.left==null&&node.right==null){
                      result+=node1.val;
               }
               if(ndoe.left!=null){
               		stack.push(node.left);
               }
               if(node.right!=null)
               {
                   stack.push(node.right);
               }
           }
           return result;
    }
}

解法二:递归法:

class Solution {
    public int sumOfLeftLeaves(TreeNode root) {
        if (root == null) return 0;
        int leftValue = sumOfLeftLeaves(root.left);    // 左
        int rightValue = sumOfLeftLeaves(root.right);  // 右
                                                       
        int midValue = 0;
        if (root.left != null && root.left.left == null && root.left.right == null) { 
            midValue = root.left.val;
        }
        int sum = midValue + leftValue + rightValue;  // 中
        return sum;
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/976053.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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