二叉树的最大路径和,这里的路径可以跨越根和左右子树

来源:互联网 发布:淘宝联盟新增导购推广 编辑:程序博客网 时间:2024/05/17 08:37
struct TreeNode{    TreeNode* left;    TreeNode* right;    int value;};int res;int dfs(TreeNode* root){    if (root == nullptr)    {        return 0;    }    int left = dfs(root->left);    int right = dfs(root->right);    int sum = root->value;    if (left > 0)    {        sum += left;    }    if (right > 0)    {        sum += right;    }    res = max(res, sum);    return max(right, left) > 0 ? max(right, left) + root->value : root->value;}int MaxPathSum(TreeNode* root){    res = INT_MIN;    dfs(root);    return res;}

0 0
原创粉丝点击