687. Longest Univalue Path

Posted zhuangbijingdeboke

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了687. Longest Univalue Path相关的知识,希望对你有一定的参考价值。

 1 /**
 2  * Definition for a binary tree node.
 3  * struct TreeNode {
 4  *     int val;
 5  *     TreeNode *left;
 6  *     TreeNode *right;
 7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 8  * };
 9  */
10 
11 static int wing=[]()
12 {
13     std::ios::sync_with_stdio(false);
14     cin.tie(NULL);
15     return 0;
16 }();
17 
18 class Solution 
19 {
20 public:
21     int res=0;
22     int longestUnivaluePath(TreeNode* root) 
23     {
24         if(root==NULL)
25             return 0;
26         count(root);
27         return res;
28     }
29     
30     int count(TreeNode* root)
31     {
32         int l=root->left?count(root->left):0;
33         int r=root->right?count(root->right):0;
34         int resl=root->left&&root->left->val==root->val?l+1:0;
35         int resr=root->right&&root->right->val==root->val?r+1:0;
36         res=max(res,resl+resr);
37         return max(resl,resr);
38     }
39 };

这个题要注意一下,容易错,辅助遍历函数有返回值。

以上是关于687. Longest Univalue Path的主要内容,如果未能解决你的问题,请参考以下文章

[leetcode-687-Longest Univalue Path]

[LeetCode] 687. Longest Univalue Path

Recursion-687. Longest Univalue Path

687. Longest Univalue Path

687. Longest Univalue Path 最长的唯一路径

687. Longest Univalue Path 687.最长单值路径