(Java)leetcode-404 Sum of Left Leaves(左叶子之和)

Bertha 。 2023-02-16 10:52 127阅读 0赞

题目描述

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

示例:
在这里插入图片描述

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

思路

先序遍历,过程中判断是否为叶子节点。为了判断是否为左边的叶子,递归方法再传一个参数来判断。

代码

  1. class Solution {
  2. private int sum = 0;
  3. public int sumOfLeftLeaves(TreeNode root) {
  4. if (root == null) return 0;
  5. travel(root, false);
  6. return sum;
  7. }
  8. private void travel(TreeNode root, boolean isLeft) {
  9. if (root == null) return;
  10. // 判断是否为叶子节点
  11. if (root.left == root.right) {
  12. // 判断是否为左边的叶子
  13. if (isLeft) sum += root.val;
  14. return;
  15. }
  16. travel(root.left, true);
  17. travel(root.right, false);
  18. }
  19. }

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,127人围观)

还没有评论,来说两句吧...

相关阅读