Следующий код дает неправильный вывод на этот вход [1, ноль, 1, ноль, 2,2]. Помоги мне исправить это. и упомяните, где это должно быть изменено.
class Solution {
public:
int result = 0;
int longestUnivaluePath(TreeNode* root) {
getLongestUnivaluePath(root);
return result;
}
int getLongestUnivaluePath(TreeNode *root){
if(!root)
return 0;
if(!root->left && !root->right)
return 0;
int left = (root->left && root->val == root->left->val) ? 1 : 0;
left += getLongestUnivaluePath(root->left);
int right = (root->right && root->val == root->right->val) ? 1 : 0;
right += getLongestUnivaluePath(root->right);
if(root->left && root->right && root->val == root->left->val && root->val == root->right->val)
result = max(result, (left + right));
else
result = max(result, max(left, right));
return max(left, right);
}
};