当前位置:   article > 正文

NC248:左叶子之和(C++)

NC248:左叶子之和(C++)

1.题目描述

2.题目分析

我们以一个二叉树为例

左叶子的特点是什么?

  • 是左节点并且没有左右孩子节点

所以我们用leftnode保存root->lefe节点,判断条件为leftnode存在,并且不存在leftnode->left和leftnode->right,如果满足条件,则将val加到全局变量x中去,x的初始值为0,然后递归root->right
如果不满足条件,就继续递归root->left和root->right

3.代码示例

  1. /**
  2. * struct TreeNode {
  3. * int val;
  4. * struct TreeNode *left;
  5. * struct TreeNode *right;
  6. * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
  7. * };
  8. */
  9. class Solution {
  10. public:
  11. /**
  12. * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
  13. *
  14. *
  15. * @param root TreeNode类
  16. * @return int整型
  17. */
  18. int count=0;
  19. int sumOfLeftLeaves(TreeNode* root) {
  20. if(root==nullptr)
  21. return 0;
  22. TreeNode* leftnode=root->left;
  23. if(leftnode&&!leftnode->left&&!leftnode->right)
  24. {
  25. count +=leftnode->val;
  26. sumOfLeftLeaves(root->right);
  27. }
  28. else {
  29. {
  30. sumOfLeftLeaves(root->left);
  31. sumOfLeftLeaves(root->right);
  32. }
  33. }
  34. return count;
  35. }
  36. };

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/50922
推荐阅读
相关标签
  

闽ICP备14008679号