Я работаю над упражнением leetCode для суммирования всех значений в BST, которые находятся в определенном диапазоне.Однако у меня возникли проблемы с некоторыми сообщениями об ошибках.Из моего кода я думаю, что совершенно очевидно, что я пытаюсь сделать, но я не уверен, как заставить это работать.
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
int sol;
public:
int rangeSumBST(TreeNode* root, int L, int R) {
sol = 0;
helper(root, L, R, sol);
return sol;
}
void helper(TreeNode* node, int L, int R, int ans) {
if (!(node = NULL)) {
if (L <= node->val && node->val <= R)
ans += node->val;
if (L < node->val)
helper(node->left, L, R);
if (node->val < R)
helper(node->right, L, R);
}
}
};
Я знаю, что я делаю что-то не так с указателями, но я могу 'не могу понять это.Вот мое сообщение об ошибке ...
solution.cpp: In member function helper
Line 23: Char 40: error: no matching function for call to
'Solution::helper(TreeNode*&, int&, int&)'
helper(node->left, L, R);
Любой совет или помощь будет принята с благодарностью.Спасибо