Leetcode вопрос для поиска Longest Univalue Path - PullRequest
0 голосов
/ 06 февраля 2020

Следующий код дает неправильный вывод на этот вход [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);
    }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...