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

1.题目

题目链接
计算给定二叉树的所有左叶子之和。
示例:

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

2.分析

2.1.怎么判断左叶子

首先得判断是否为叶子。叶子的左子结点与右子结点均为空,因此有:

bool isLeaf(TreeNode* node) {return !node->left && !node->right;
}

而判断该叶子是否为左叶子,只需要判断其是否为父结点的左子结点:

if(isLeaf(node->left)){}

2.2.dfs过程

直接利用二叉树的深度优先搜索框架:

int dfs(TreeNode* node){int res = 0;if(node->left) {  //搜索左子树res += dfs(node->left);//do something...}if(node->right) {  //搜索右子树res += dfs(node->right);//do something...}return res;
}

3.代码

class Solution {public:int sumOfLeftLeaves(TreeNode* root) {return !root ? 0 : dfs(root);}int dfs(TreeNode* node){int res = 0;if(node->left) {if(isLeaf(node->left)){res += node->left->val;}else{res += dfs(node->left);}}if(node->right) {res += dfs(node->right);}return res;}bool isLeaf(TreeNode* node) {return !node->left && !node->right;}
};

[二叉树|深搜|dfs] leetcode 404 左叶子之和相关推荐

  1. LeetCode 404. 左叶子之和(Sum of Left Leaves)

    404. 左叶子之和 404. Sum of Left Leaves LeetCode404. Sum of Left Leaves 题目描述 计算给定二叉树的所有左叶子之和. 示例: 3/ \9 2 ...

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

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

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

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

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

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

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

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

  6. LeetCode 404 左叶子之和

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

  7. LeetCode 404. 左叶子之和

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

  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. oracle 查看表结构约束,oracle 约束
  2. linux-shell——02
  3. redis 学习笔记(1)-编译、启动、停止
  4. 农业部部署农业大数据发展工作 评:对农业现代化很重要
  5. 华为p50出厂自带鸿蒙,真的假的?华为P50系列出厂就预装鸿蒙
  6. 基于pyqt5的Demo软件开发
  7. VRay5.0 for 3dsMax2016-2021及素材库
  8. Next主题 - 图片设置
  9. springboot jpa 实体类继承
  10. ESD介绍及TVS的原理和应用
  11. java虚拟机启动失败_Eclipse 启动提示java虚拟机启动失败
  12. hbase基本操作命令及练习
  13. Linux的ping用python,通过linux进行ping,并以python格式获得输出
  14. 《状态变量分析导论》学习总结
  15. 手机浏览器,怎么访问电脑版的网页?
  16. 使用python抓取并分析数据—链家网(requests+BeautifulSoup)(转)
  17. 【深度学习】常见优化算法
  18. MySQL安装包下载地址 各个版本的都有哦!
  19. 10月18号 蒟蒻的流水账
  20. 学生管理系统(完整版)

热门文章

  1. 太原市初中计算机课程视频,初中全课程教学视频
  2. java 取上下文路径_取得上下文路径的方式(getContextPath)
  3. python 打开本地程序发生异常_Python中的异常处理
  4. hnu 暑期实训之疫情期间
  5. ~~约数之和(附模板题)
  6. 语义分割——DeepLabv3+的学习笔记~
  7. AttributeError: module ‘xlwt‘ has no attribute ‘Workbook‘解决方案
  8. python中的struct模块
  9. ROS学习笔记五:理解ROS topics
  10. PASCAL-VOC2012 数据集介绍 及 制作同格式数据