如何將值1傳遞給main函數中的if語句以及返回函數如何與遞歸調用一起使用?返回函數如何返回If語句的值?
#include <stdio.h>
#include <stdlib.h>
int identicalTrees(struct node* a, struct node* b)
{
if (a==NULL && b==NULL)
return 1;
if (a!=NULL && b!=NULL)
{
return
(
a->data == b->data &&
identicalTrees(a->left, b->left) &&
identicalTrees(a->right, b->right)
);
}
return 0;
}
int main()
{
if(identicalTrees(root1, root2))
printf("Both tree are identical.");
else
printf("Trees are not identical.");
getchar();
return 0;
}
什麼「返回功能」? 'return'不是一個函數,它是一個聲明。並且它返回一個值給調用者,因爲語言定義是這樣說的。 –
有幾個很棒的視頻解釋了遞歸和堆棧如何在YouTube上的Computerphile頻道上工作。你應該全部看着他們。 https://www.youtube.com/watch?v=Mv9NEXX1VHc,https://www.youtube.com/watch?v=TrfcJCulsF4,https://www.youtube.com/watch?v=7t_pTlH9HwA,https: //www.youtube.com/watch?v=7ha78yWRDlE,https://www.youtube.com/watch?v=S_NXz7I5dQc – SpiderPig
您一定要閱讀[call stack](https://en.wikipedia。組織/維基/ CALL_STACK)。 –