> For the complete documentation index, see [llms.txt](https://ondrej-kvasnovsky-2.gitbook.io/algorithms/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ondrej-kvasnovsky-2.gitbook.io/algorithms/interviews/google-leetcode/longest-univalue-path.md).

# Longest Univalue Path

Given a binary tree, find the length of the longest path where each node in the path has the same value. This path may or may not pass through the root.

**Note:**&#x54;he length of path between two nodes is represented by the number of edges between them.

**Example 1:**

Input:

```
              5
             / \
            4   5
           / \   \
          1   1   5
```

Output:

```
2
```

**Example 2:**

Input:

```
              1
             / \
            4   5
           / \   \
          4   4   5
```

Output:

```
2
```

**Note:** The given binary tree has not more than 10000 nodes. The height of the tree is not more than 1000.

Solution

```
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public int longestUnivaluePath(TreeNode root) {

    }
}
```
