算法day44 左叶子之和
题目描述

思路:递归
求解左叶子之和,我们可以采用中序的方式进行递归,过程中我们只采集左叶子的值,其它的部分只是访问但不收集,整体代码如下。
void traversal(TreeNode *cur,int & res){
if(cur == nullptr) return;
if(cur -> left){
traversal(cur->left,res);
if(!cur->left->left && !cur -> left ->right){
res += cur -> left -> val;
}
}
if(cur -> right){
traversal(cur->right,res);
}
}
int sumOfLeftLeaves(TreeNode* root) {
int res = 0;
traversal(root,res);
return res;
}
时间复杂度:O(n)
空间复杂度:O(h)
END
浙公网安备 33010602011771号