二叉树到圆形双向链表

问题描述 投票:0回答:1

我正在尝试使用下面的函数使用二叉树创建一个循环的双向链表,但是在代码下方给出了它的抛出编译错误。

/*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&)’头= CDLL =新节点(数据)^ prog.cpp:6:8:注意:候选者:Node :: Node()结构节点^ prog.cpp:6:8:注意:候选人期望0个参数,提供1个prog.cpp:6:8:注意:候选人:constexpr Node :: Node(constNode&)prog.cpp:6:8:注意:来自的参数1没有已知的转换从“ int”到“ const Node&” prog.cpp:6:8:注意:候选人:constexprNode :: Node(Node &&)prog.cpp:6:8:注意:没有已知的转换参数1从“ int”到“ Node &&” prog.cpp:167:40:错误:不匹配调用“ Node :: Node(int&)”的函数cdll-> right =新节点(数据)^ prog.cpp:6:8:注意:候选对象:Node :: Node()结构节点^ prog.cpp:6:8:注意:候选人期望0个参数,提供1个prog.cpp:6:8:注意:候选人:constexpr节点::否.................

c++ data-structures linked-list doubly-linked-list
1个回答
-3
投票

我已经在我的网站上发布了解决方案,请查看https://finaldesk.co.in/blog/

© www.soinside.com 2019 - 2024. All rights reserved.