计算给定二叉树的所有左叶子之和。
示例:
3 / 9 20 / 15 7 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24
思路:
层遍历一棵树,找到左叶子,求其和
1 #include<queue> 2 class Solution { 3 public: 4 int sumOfLeftLeaves(TreeNode* root) { 5 queue<TreeNode*> q; 6 q.push(root); 7 int sum = 0; 8 while(!q.empty()){ 9 TreeNode* temp = q.front(); 10 q.pop(); 11 if(temp == NULL) break; 12 if(temp->left) { 13 q.push(temp->left); 14 if(temp->left->left == NULL && temp->left->right == NULL) sum += temp->left->val; 15 } 16 if(temp->right) q.push(temp->right); 17 } 18 return sum; 19 } 20 };