404. 左叶子之和
404. Sum of Left Leaves

LeetCode404. Sum of Left Leaves

题目描述
计算给定二叉树的所有左叶子之和。

示例:

    3/ \9  20/  \15   7

在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24。

Java 实现
TreeNode 结构

class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) {val = x;}
}

Recursive

class Solution {private int sum = 0;public int sumOfLeftLeaves(TreeNode root) {if (root == null) {return 0;}if (root.left != null && root.left.left == null && root.left.right == null) {sum += root.left.val;}sumOfLeftLeaves(root.left);sumOfLeftLeaves(root.right);return sum;}
}
class Solution {public int sumOfLeftLeaves(TreeNode root) {int count = 0;if (root == null) {return 0;}if (root.left != null) {if (root.left.left == null && root.left.right == null) {count += root.left.val;} else {count += sumOfLeftLeaves(root.left);}}count += sumOfLeftLeaves(root.right);return count;}
}

Iterative

import java.util.Stack;
class Solution {public int sumOfLeftLeaves(TreeNode root) {int count = 0;Stack<TreeNode> stack = new Stack<>();if (root == null) {return 0;}stack.push(root);while (!stack.isEmpty()) {TreeNode node = stack.pop();if (node.left != null) {if (node.left.left == null && node.left.right == null) {count += node.left.val;} else {stack.push(node.left);}}if (node.right != null) {if (node.right.left != null || node.right.right != null) {stack.push(node.right);}}}return count;}
}

主测试类

public class Test {public static void main(String[] args) {Solution tree = new Solution();/* create a tree */TreeNode root = new TreeNode(3);root.left = new TreeNode(9);root.right = new TreeNode(20);root.right.left = new TreeNode(15);root.right.right = new TreeNode(7);System.out.println(tree.sumOfLeftLeaves(root));}
}

运行结果

24

相似题目

  • 求二叉树中叶子节点的个数

参考资料

  • https://leetcode.com/problems/sum-of-left-leaves/
  • https://leetcode-cn.com/problems/sum-of-left-leaves/

转载于:https://www.cnblogs.com/hglibin/p/10849527.html

LeetCode 404. 左叶子之和(Sum of Left Leaves)相关推荐

  1. [二叉树|深搜|dfs] leetcode 404 左叶子之和

    [二叉树|深搜|dfs] leetcode 404 左叶子之和 1.题目 题目链接 计算给定二叉树的所有左叶子之和. 示例: 3/ \9 20/ \15 7在这个二叉树中,有两个左叶子,分别是 9 和 ...

  2. LeetCode 404. 左叶子之和(递归)

    1. 题目 计算给定二叉树的所有左叶子之和. 示例:3/ \9 20/ \15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24 来源:力扣(LeetCode) 链接:https: ...

  3. LeetCode 404左叶子之和-简单

    计算给定二叉树的所有左叶子之和. 示例: 3/ \9 20/ \15 7 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24 代码如下: /*** Definition for a b ...

  4. LeetCode 404. 左叶子之和思考分析

    题目 计算给定二叉树的所有左叶子之和. 如果是下面的树,只有一个左叶子结点4 思考分析 由此我们可以得到左叶子结点的定义: cur->left !=NULL && cur-> ...

  5. LeetCode 404 左叶子之和

    力扣 思路: 1.递归 递归出口 找特殊情况: (1) 如果根节点为空,返回0 (2 )如果根节点的左右孩子节点都为空,返回0 (3)如果根节点有左孩子且左孩子的左右孩子都为空,返回root-> ...

  6. LeetCode 404. 左叶子之和

    非递归 public static int sumOfLeftLeaves(TreeNode root) {int sum = 0;if(root==null)return 0;Stack<Tr ...

  7. Suzy找到实习了吗Day 17 | 二叉树进行中:110. 平衡二叉树,257 二叉树的所有路径,404. 左叶子之和

    110. 平衡二叉树 题目 判断一颗二叉树是否是平和二叉树:一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 . 我的错误trial 我通过写了一个函数(后序遍历 ...

  8. 力扣404. 左叶子之和

    404. 左叶子之和 - 力扣(LeetCode) (leetcode-cn.com) class Solution {int ans = 0;public int sumOfLeftLeaves(T ...

  9. 404. 左叶子之和

    题目 404. 左叶子之和 找到左叶子 方法一:递归 判断根节点是否有左子树,用sum_left记录 递归左子树与右子树,找出其中的叶子节点 # Definition for a binary tre ...

最新文章

  1. 在A*寻路中使用二叉堆
  2. 社区头条:Spring For All 新版上线了!!!
  3. vue中页面跳转传值_vue跳转方式(打开新页面)及传参操作示例
  4. 015. Object event handling debug - Parameter COM_IOITF_DEBUG
  5. 中国人口较少民族作家研讨会
  6. 用 JavaScript 操作字符串
  7. python可以实现操作系统管理_Python并发编程 —— 操作系统基础
  8. Spring-Data-JPA尝鲜:快速搭建CRUD+分页后台实例
  9. 鸿蒙之光一星辰是什么意思,如果说安卓的目标是太阳,那么鸿蒙的目标就是星辰大海...
  10. 在C#中将集合用作键
  11. centos overlay 占用很大_盘锦技术好的升降货梯占用空间小
  12. python和perl的区别_Perl和Python之间有什么区别?Perl与Python的简单比较
  13. 均分纸牌模型之mxj分礼物
  14. 关于Excel中的【照相机】功能。(我们通过此功能,可以通过Excel在图片上面画上一些内容后,连同图片和内容一起弄出来)
  15. ArcGIS Engine中删除要素的几种方法总结
  16. oracle rownum使用与分页
  17. 【ER网络?BA网络?WS网络?NW网络?】复杂网络分析+数据集+代码实现
  18. 关于JeeSite框架Shiro序列化漏洞修复解决方法
  19. TTL与非门电路的工作原理
  20. 网页|利用touch实现下拉刷新

热门文章

  1. thinkphp5.0 cache数据缓存机制
  2. js中几种实用的跨域方法原理详解
  3. Atlas, AJAX
  4. ubuntu10.04 android编译问题
  5. prometheus实战:
  6. 第9章:Bootstrap Token方式增加Node
  7. 10.21 crond定时任务练习
  8. c语言二维数组参数传入,C语言二维数组、参数传递的理解
  9. Flink+Hologres助力伊的家电商平台建设新一代实时数仓
  10. 快手基于 Flink 的持续优化与实践