687. 最长同值路径

C代码:DFS
int res;   // int res = 0; 这种初始化有问题
int dfs(struct TreeNode* root, int val) {
    if (root == NULL) {
        return 0;
    }
    int left = dfs(root->left, root->val);
    int right = dfs(root->right, root->val);
    res = fmax(res, left + right);  // 后序遍历
    return root->val == val ? fmax(left, right) + 1 : 0;  // 往上返回一条边数
}
int longestUnivaluePath(struct TreeNode* root){
    if (!root) {
        return 0;
    }
    res = 0;
    dfs(root, root->val);
    return res;
}



















