具体任务是我必须从二叉树中复制整数值,并使用这些值创建一个链表。我遇到的问题是,当我遍历二叉树在每个节点上获取每个整数时,我无法将节点的值发送到链表分配函数
// 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
答案 0 :(得分:1)
此电话:
appendList(root, root->data);
采用一个list_node
指针,但您给它一个node
指针。
换句话说,您正在尝试将二叉树的节点用作列表节点,这并不是您真正想做的。尝试使用列表结构的根,而不是二进制结构。
答案 1 :(得分:-1)
EnableSanitization="false"