LeetCode Solutions
404. Sum of Left Leaves
Time: $O(n)$ Space: $O(h)$
class Solution {
public:
int sumOfLeftLeaves(TreeNode* root) {
if (root == nullptr)
return 0;
int ans = 0;
if (root->left) {
if (root->left->left == nullptr && root->left->right == nullptr)
ans += root->left->val;
else
ans += sumOfLeftLeaves(root->left);
}
ans += sumOfLeftLeaves(root->right);
return ans;
}
};
class Solution {
public int sumOfLeftLeaves(TreeNode root) {
if (root == null)
return 0;
int ans = 0;
if (root.left != null) {
if (root.left.left == null && root.left.right == null)
ans += root.left.val;
else
ans += sumOfLeftLeaves(root.left);
}
ans += sumOfLeftLeaves(root.right);
return ans;
}
}
class Solution {
public:
int sumOfLeftLeaves(TreeNode* root) {
if (root == nullptr)
return 0;
int ans = 0;
stack<TreeNode*> stack{{root}};
while (!stack.empty()) {
root = stack.top(), stack.pop();
if (root->left) {
if (root->left->left == nullptr && root->left->right == nullptr)
ans += root->left->val;
else
stack.push(root->left);
}
if (root->right)
stack.push(root->right);
}
return ans;
}
};