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