我有一个预排序遍历函数,如下所示:
void listInPreOrder(node* hd){
if(hd != NULL) {
printf("%d, ", hd->value);
listInPreOrder(hd->left);
listInPreOrder(hd->right);
}
}
事实上是这样的,但是我认为在订货后就可以这么简单了
void listInPostOrder(node* hd){
if(hd != NULL) {
listInPreOrder(hd->left);
listInPreOrder(hd->right);
printf("%d, ", hd->value);
}
}
但不幸的是,它没有那么好用我在想怎么解决这个问题,也许我做错了什么或者是完全错了。
最佳答案
你改一下怎么样:
void listInPostOrder(node* hd){
if(hd != NULL) {
listInPreOrder(hd->left); // PRE order ???
listInPreOrder(hd->right); // PRE order ???
printf("%d, ", hd->value);
}
}
对此:
void listInPostOrder(node* hd){
if(hd != NULL) {
listInPostOrder(hd->left);
listInPostOrder(hd->right);
printf("%d, ", hd->value);
}
}
关于c - 二叉树的后序/前序遍历,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13609655/