我可以使用以下代码按顺序遍历树。但是如果想要从这个函数返回有序遍历,我该怎么办呢?
void inorder(Node* root){
if(root==NULL){
return;
}
inorder(root->left);
printf("%d\n",root->data);
inorder(root->right);
}
答案 0 :(得分:-1)
void inorder(Node* root,int str[])
{
static int i=0;
if(root==Null){
return;
}
inorder(root->left,str);
str[i++] = root->data;
inorder(root->right,str);
str[i] = SOME_SENTINEL_VALUE
}
int * inorder_temp(Node *root)
{
int *str=(int*)malloc(MAX_SIZE_OF_TREE*sizeof(int));
inorder(root,str);
return str;
}
我希望这就是你所要求的。呼叫inorder_temp()代替inorder() 编辑:抱歉没有正确缩进。这是我在stackoverflow的第一个答案