[二叉树|深搜|dfs] leetcode 404 左叶子之和
[二叉树|深搜|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 左叶子之和相关推荐
- LeetCode 404. 左叶子之和(Sum of Left Leaves)
404. 左叶子之和 404. Sum of Left Leaves LeetCode404. Sum of Left Leaves 题目描述 计算给定二叉树的所有左叶子之和. 示例: 3/ \9 2 ...
- Suzy找到实习了吗Day 17 | 二叉树进行中:110. 平衡二叉树,257 二叉树的所有路径,404. 左叶子之和
110. 平衡二叉树 题目 判断一颗二叉树是否是平和二叉树:一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 . 我的错误trial 我通过写了一个函数(后序遍历 ...
- LeetCode 404. 左叶子之和(递归)
1. 题目 计算给定二叉树的所有左叶子之和. 示例:3/ \9 20/ \15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24 来源:力扣(LeetCode) 链接:https: ...
- LeetCode 404左叶子之和-简单
计算给定二叉树的所有左叶子之和. 示例: 3/ \9 20/ \15 7 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24 代码如下: /*** Definition for a b ...
- LeetCode 404. 左叶子之和思考分析
题目 计算给定二叉树的所有左叶子之和. 如果是下面的树,只有一个左叶子结点4 思考分析 由此我们可以得到左叶子结点的定义: cur->left !=NULL && cur-> ...
- LeetCode 404 左叶子之和
力扣 思路: 1.递归 递归出口 找特殊情况: (1) 如果根节点为空,返回0 (2 )如果根节点的左右孩子节点都为空,返回0 (3)如果根节点有左孩子且左孩子的左右孩子都为空,返回root-> ...
- LeetCode 404. 左叶子之和
非递归 public static int sumOfLeftLeaves(TreeNode root) {int sum = 0;if(root==null)return 0;Stack<Tr ...
- 力扣404. 左叶子之和
404. 左叶子之和 - 力扣(LeetCode) (leetcode-cn.com) class Solution {int ans = 0;public int sumOfLeftLeaves(T ...
- 404. 左叶子之和
题目 404. 左叶子之和 找到左叶子 方法一:递归 判断根节点是否有左子树,用sum_left记录 递归左子树与右子树,找出其中的叶子节点 # Definition for a binary tre ...
最新文章
- oracle 查看表结构约束,oracle 约束
- linux-shell——02
- redis 学习笔记(1)-编译、启动、停止
- 农业部部署农业大数据发展工作 评:对农业现代化很重要
- 华为p50出厂自带鸿蒙,真的假的?华为P50系列出厂就预装鸿蒙
- 基于pyqt5的Demo软件开发
- VRay5.0 for 3dsMax2016-2021及素材库
- Next主题 - 图片设置
- springboot jpa 实体类继承
- ESD介绍及TVS的原理和应用
- java虚拟机启动失败_Eclipse 启动提示java虚拟机启动失败
- hbase基本操作命令及练习
- Linux的ping用python,通过linux进行ping,并以python格式获得输出
- 《状态变量分析导论》学习总结
- 手机浏览器,怎么访问电脑版的网页?
- 使用python抓取并分析数据—链家网(requests+BeautifulSoup)(转)
- 【深度学习】常见优化算法
- MySQL安装包下载地址 各个版本的都有哦!
- 10月18号 蒟蒻的流水账
- 学生管理系统(完整版)
热门文章
- 太原市初中计算机课程视频,初中全课程教学视频
- java 取上下文路径_取得上下文路径的方式(getContextPath)
- python 打开本地程序发生异常_Python中的异常处理
- hnu 暑期实训之疫情期间
- ~~约数之和(附模板题)
- 语义分割——DeepLabv3+的学习笔记~
- AttributeError: module ‘xlwt‘ has no attribute ‘Workbook‘解决方案
- python中的struct模块
- ROS学习笔记五:理解ROS topics
- PASCAL-VOC2012 数据集介绍 及 制作同格式数据