大家好,我是苏貝,本篇博客带大家刷题,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️
这道题很明显要用递归
首先,如果这个树是空树,就直接返回0
其次,不是空树,如果某个节点的左孩子节点是叶子节点,那么返回左孩子节点的值与递归该节点的右子树返回的值之和
如果某个节点的左孩子节点不是叶子节点,那么返回递归该节点的左子树返回的值与递归该节点的右子树返回的值之和
int sumOfLeftLeaves(struct TreeNode* root ) {
if(root==NULL)
return 0;
if(root->left&&root->left->left==NULL&&root->left->right==NULL)
return root->left->val+sumOfLeftLeaves(root->right);
return sumOfLeftLeaves(root->left)+sumOfLeftLeaves(root->right);
}
这道题比较简单,如果你还是有些不清楚的话,建议画个递归流程图
好了,那么本篇博客就到此结束了,如果你觉得本篇博客对你有些帮助,可以给个大大的赞👍吗,感谢看到这里,我们下篇博客见❤️