如何将节点值从一种数据结构复制到另一种数据结构

时间:2019-04-16 04:16:09

标签: c++

具体任务是我必须从二叉树中复制整数值,并使用这些值创建一个链表。我遇到的问题是,当我遍历二叉树在每个节点上获取每个整数时,我无法将节点的值发送到链表分配函数

// Setting up the data structures:
struct node // node for the binary tree:
{
    int data; // variable to store each integer value in the tree
    node * left; // pointer for each right node
    node * right; // pointer for each left node
};
struct list_node // node for the linked list
{
    int list_data;
    list_node* next;
};

// Function for linked list insertion:
list_node * appendList(list_node *current, int newData)
{
    list_node *newNode = new list_node();
    newNode->list_data = newData;
    newNode->next = NULL; // now end of list
    current->next = newNode;
    return newNode;
}

void traverse(node* root)
{
    if (root == NULL)
    {
        return;
    }
    traverse(root->left); // first recursive
    // then send these values to the linked list
    //cout << root->data << " ";
    appendList(root, root->data);
    traverse(root->right); // second recusive
}

错误:

argument of type node is incompatible with parameter of type list_node

2 个答案:

答案 0 :(得分:1)

此电话:

appendList(root, root->data);

采用一个list_node指针,但您给它一个node指针。

换句话说,您正在尝试将二叉树的节点用作列表节点,这并不是您真正想做的。尝试使用列表结构的根,而不是二进制结构。

答案 1 :(得分:-1)

EnableSanitization="false"