题目:
代码:
#include#include using namespace std; int res=INT_MIN; typedef struct TreeNode{ int val; TreeNode *left,*right; }TreeNode,*BiTree; void create(BiTree &T){ int tn; cin>>tn; if(tn==-1){ T=NULL; return; }else{ T=new TreeNode; T->val=tn; create(T->left); create(T->right); } } int oneSideMax(TreeNode* root){ if(!root){ return 0; } int left = max(0,oneSideMax(root->left)); int right = max(0,oneSideMax(root->right)); res=max(res,left+right+root->val); return max(left,right) + root->val; } int maxPathSum(TreeNode* root) { oneSideMax(root); return res; } int main(){ TreeNode* root; create(root); maxPathSum(root); cout<



