左叶子之和
题目描述
给定二叉树的根节点 root
,返回所有左叶子之和。
![](https://i-blog.csdnimg.cn/blog_migrate/35b9a807382bdd202a5b9fc5bb9f81e4.png)
思考
左叶子的明确定义:节点A的左孩子不为空,且左孩子的左右孩子都为空(说明是叶子节点),那么A节点的左孩子为左叶子节点
无法对当前节点直接判断是不是左叶子节点,必须要通过父节点来判断其左孩子是不是左叶子
递归的遍历顺序为后序遍历(左右中),因为要通过递归函数的返回值来累加求取左叶子数值之和
- 确定递归函数的参数和返回值
- 参数:传入根节点
- 返回值:节点值
- 确定终止条件
- 遍历到空节点,那么其左叶子值一定是0,返回0
- 确定单层递归的逻辑
- 当遇到左叶子节点的时候,记录数值
- 通过递归求取根节点的 左子树左叶子之和 和 右子树左叶子之和,相加便是整个树的左叶子之和
代码
Go