题解 | #牛群特殊路径的数量#

牛群特殊路径的数量

https://www.nowcoder.com/practice/1c0f95d8396a432db07945d8fe51a4f5

考察的知识点:二叉树的递归遍历;

解答方法分析:

  1. 定义了一个Solution类,其中有一个公有成员函数pathSum,用于计算二叉树中路径和等于给定值的路径数量。
  2. pathSum函数使用了递归的方法,首先判断当前节点是否为空,如果为空则返回0。
  3. 如果当前节点的值等于给定的sum值,计数器count加1。
  4. 递归调用pathSum函数计算左子树和右子树的路径和等于sum的路径数量,并将结果累加到count中。
  5. 最后返回count作为结果。

所用编程语言:C++;

完整编程代码:↓

/**
 * struct TreeNode {
 *  int val;
 *  struct TreeNode *left;
 *  struct TreeNode *right;
 *  TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 * };
 */
class Solution {
  public:
    int pathSum(TreeNode* root, int sum) {
        if (root == nullptr) {
            return 0;
        }
        return pathSumHelper(root, sum) + pathSum(root->left,sum) + pathSum(root->right, sum);
    }

    int pathSumHelper(TreeNode* node, int sum) {
        if (node == nullptr) {
            return 0;
        }
        int count = 0;
        if (node->val == sum) {
            count++;
        }
        count += pathSumHelper(node->left, sum - node->val);
        count += pathSumHelper(node->right, sum - node->val);
        return count;
    }
};

全部评论

相关推荐

码砖:求职岗位要突出,一眼就能看到,教育背景放到最后,学校经历没那么重要,项目要重点突出
点赞 评论 收藏
分享
程序员小白条:你是沟通了900个,不是投了900份简历,你能投900份,意味着对面都要回复你900次,你早就找到实习了,没亮点就是这样的,别局限地区,时间投的也要早,现在都要7月了
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务