算法刷题记录.leetcode404左叶子之和

58 阅读1分钟

题目描述

给定二叉树的根节点 root ,返回所有左叶子之和。

 

示例 1:

递归解析

  1. 确定递归函数的参数和返回值

判断一个树的左叶子节点之和,那么一定要传入树的根节点,递归函数的返回值为数值之和,所以为int

使用题目中给出的函数就可以了。

  1. 确定终止条件

如果遍历到空节点,那么左叶子值一定是0

  1. 确定单层递归的逻辑

当遇到左叶子节点的时候,记录数值,然后通过递归求取左子树左叶子之和,和 右子树左叶子之和,相加便是整个树的左叶子之和。

代码

class Solution {

public:

int sumOfLeftLeaves(TreeNode* root) {

if(root == nullptr) return 0;

\


int left = sumOfLeftLeaves(root->left);

if(root->left && !root->left->left && !root->left->right) left = root->left;

int right = sumOfLeftLeaves(root->right);

int sum;

sum = left+right;

return sum;

}

};