struct TreeNode{
char data;
struct TreeNode *left, *right;
};
//依照前序遍歷創建一顆二叉樹
void A(struct TreeNode **root)
{
char c;
scanf("%c", &c);
if (c==' '){
*root = NULL;
}
else{
*root = malloc(sizeof(struct TreeNode));
(*root)->data = c;
A(&(*root)->left);
A(&(*root)->right);
}
}
struct TreeNode *B(struct TreeNode *root)
{
char c;
scanf("%c", &c);
if (c==' '){
root = NULL;
}
else{
root = malloc(sizeof(struct TreeNode));
root->data = c;
root->left = B(root->left);
root->right = B(root->right);
}
return root;
}
//函式C是錯誤的嗎?
void C(struct TreeNode *root)
{
char c;
scanf("%c", &c);
if (c==' '){
root = NULL;
}
else{
root = malloc(sizeof(struct TreeNode));
root->data = c;
C(root->left);
C(root->right);
}
}
1.上面是創建二叉樹的三個函式,函式A和函式B的區別在哪?
2.為什么函式A非要用到二級指標而函式B卻只需要一級指標?
3.函式C是錯誤的嗎?為什么函式B可以用一級指標是對的呢?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/191279.html
標籤:C語言
上一篇:找BUG——二叉樹的層序遍歷
下一篇:新人,幫忙看看問題
