0

いくつかの質問に目を通しましたが、何が起こっているのかわかりません。二分木を前後の順序でリンクされたリストに変換しようとしています。私のコードは、ゼロで構成されたリンク リストを返しています。この場合、post-order のコードは本質的に pre と同じであるため、除外しました。これが私の関連コードです:

typedef struct list {
    int data;
    struct list *next;
} List;

List* createNode(int data)
{
    // create node in memory
    List* list = malloc(sizeof(list));
    // init parameters
    list->data = data;
    list->next = NULL;
}

void printList(List *list)
{
    //if(list->next == NULL) printf("y");
    while(list != NULL) {
        printf("%d", list->data);
        list = list->next;
    }
}

void preOrder(node *tree, List *list)
{   
    if(tree == NULL) return;
    // visit root
    list = createNode(tree->data);
    // left
    preOrder(tree->left, list->next);
    // right
    preOrder(tree->right, list->next);
}

int preL(node *a)
{
    // create preList
    List *preList = malloc(sizeof(List));
    preOrder(a,preList);
    printList(preList);
}
4

2 に答える 2