Longest Univalue Path (Easy Google)

update May 14,2018 14:34

LeetCodearrow-up-right

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: The 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.

Basic Idea:

利用一个helper function,返回包含当前node在内的从下往上的最长连续长度,然后在每层递归中更新全局变量res。

  • C++ Code