var longestUnivaluePath = function(root) {
if(!root) return 0;
const dfs = (node, val) => {
if(!node || node.val !== val) return 0;
const left = dfs(node.left, val);
const right = dfs(node.right, val);
return 1 + Math.max(left, right);
}
return Math.max(dfs(root.left, root.val) + dfs(root.right, root.val), longestUnivaluePath(root.left), longestUnivaluePath(root.right))
};