标签:二叉树 str https tps 判断 etc lang nod 使用
计算给定二叉树的所有左叶子之和。
示例:
3
/ 9 20
/ 15 7
在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24
题目链接: https://leetcode-cn.com/problems/sum-of-left-leaves/
一棵树的所有左叶子之和就是这棵树左子树的左叶子+右子树的左叶子。只有是左叶子才加进结果里,判断一个节点是否是左叶子的方法是根据该节点的父节点来判断:如果该节点是父节点的左子节点并且该节点没有孩子节点,那么该节点就是左叶子。代码如下:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
int sumOfLeftLeaves(TreeNode* root) {
if(root==nullptr) return 0;
if(root->left!=nullptr && root->left->left==nullptr && root->left->right==nullptr){
return root->left->val + sumOfLeftLeaves(root->right);
}
return sumOfLeftLeaves(root->left) + sumOfLeftLeaves(root->right);
}
};
标签:二叉树 str https tps 判断 etc lang nod 使用
原文地址:https://www.cnblogs.com/flix/p/12694432.html