24. Longest Univalue Path
Input: root = [5,4,5,1,1,5]
Output: 2Input: root = [1,4,5,4,4,5]
Output: 2Solution: (DFS / Postorder Traversal)
class Solution
{
public:
int ans = 0;
int findPath(TreeNode *root)
{
if (root == NULL)
{
return 0;
}
int x = findPath(root->left);
int y = findPath(root->right);
int left = 0;
int right = 0;
if (root->left && root->val == root->left->val)
{
left += x + 1;
}
if (root->right && root->val == root->right->val)
{
right += y + 1;
}
ans = max(ans, left + right);
return max(left, right);
}
int longestUnivaluePath(TreeNode *root)
{
if (root == NULL)
{
return 0;
}
findPath(root);
return ans;
}
};Last updated

