class Solution {
public:
int longestConsecutive(TreeNode* root) {
return dfs(root,nullptr,0);
}
int dfs(TreeNode* p,TreeNode* parent,int length){
if(!p) return length;
length = (parent&&p->val==parent->val+1)?++length:1;
return max(length,max(dfs(p->left,p,length),dfs(p->right,p,length)));
}
};
时间复杂度: O(n)