c++ - 二叉树到循环双向链表
问题描述
我正在尝试使用以下函数使用二叉树创建一个循环双向链表,但它会抛出编译错误,在代码下方给出。
/*Node is as follows:
struct Node
{
int data;
struct Node* left;
struct Node* right;
Node(int x){
data = x;
left = right = NULL;
}
};*/
Node *bTreeToCList(Node *root)
{
if(!root) return NULL;
stack<Node *> s;
s.push(root);
Node *temp=NULL, *cdll=NULL, *head=NULL;
while(!s.empty()){
while(temp){
s.push(temp->left);
temp = temp->left;
}
temp = s.top(); s.pop();
int data = temp->data;
temp = temp->right;
if(!head){
head = cdll = new Node(data)
}
else{
cdll->right = new Node(data)
}
}
cdll->right = head;
head->left = cdll;
return head;
}
编译错误:
编译错误 prog.cpp:在函数 'Node* bTreeToCList(Node*)' 中:prog.cpp:164:40:错误:没有匹配函数调用 'Node::Node(int&)' head = cdll = new Node(数据)^ prog.cpp:6:8:注意:候选人:Node::Node() 结构节点 ^ prog.cpp:6:8:注意:候选人需要 0 个参数,提供 1 个 prog.cpp:6:8:注意:候选人:constexpr Node::Node(const Node&) prog.cpp:6:8:注意:没有已知的参数 1 从“int”到“const Node&”的转换 prog.cpp:6:8:注意:候选人:constexpr Node::Node(Node&&) prog.cpp:6:8: 注意:没有已知的参数 1 从 'int' 到 'Node&&' 的转换 prog.cpp:167:40: 错误:没有匹配函数调用 'Node: :Node(int&)' cdll->right = new Node(data) ^ prog.cpp:6:8: note: Candidate: Node::Node() struct Node ^ prog.cpp:6:8: note: Candidate期望 0 个参数,1 个提供 prog.cpp: 6:8:注意:候选:constexpr Node::No.......
解决方案
推荐阅读
- python - 异步子进程上下文管理器
- javascript - Rex UI 可滚动面板:无法理解它是如何工作的
- python - 无法检查芹菜队列
- c++ - 编码新手需要有关 if 语句的帮助
- imagemagick - 为什么imagemagick-convert只有jpeg作为委托时能够将jpg转换为png
- android - 房间数据库:即使它是自动生成的,仍然得到“没有为参数 'id' 传递值”
- amazon-web-services - AWS IAM ARN 和通配符
- python - 如何找到对列表进行排序的最小移动次数?
- c# - 将属于动态加载的 dll 的类强制转换为属于另一个 dll 的抽象类
- node.js - 如何在mongodb参考模型中进行记录