給定二叉樹,找到從葉到根的最大總和路徑。例如,在以下樹中,有三個葉子到根路徑8 - > - 2-> 10,-4 - > - 2-> 10和7-> 10。這三條路徑的總和分別是16,4和17。它們的最大值是17,最大值的路徑是7 - > 10。在二叉樹中查找從根到葉的最大總和
10
/\
-2 7
/\
8 -4
這是計算從根本最高數額在給定二叉樹的任何葉子節點的功能,這個問題是問在採訪中也多次通過各種companies.I我想這個聲明LS和RS作爲靜..所以它會產生錯誤的輸出。但是當我刪除靜態關鍵字時,它會產生正確的輸出。請給我解釋一下靜態關鍵字的問題。
int roottoleafmaxsum(struct node*temp) //root will be passed as an argument
{
static int ls,rs; //left sum and right sum
if(temp) //if temp!=NULL then block will be executed
{
ls=roottoleafmaxsum(temp->left); //recursive call to left
rs=roottoleafmaxsum(temp->right); //recursive call to right
if(ls>rs)
return (ls+temp->data); //it will return sum of ls and data
else
return (rs+temp->data); //it will return sum of rs and data
}
}
我想你應該在你的roottoleafmaxsum函數中當temp爲NULL時返回0。 – IronMan007