繁体   English   中英

C++使用递归的二叉搜索树,返回节点问题

[英]C++ binary search tree using recursion, return node problem

我正在尝试创建一个 function 接收一个节点和一个值以进入树。 我将值作为(Node* 节点,int 值)传递。 但是当我返回该节点时,错误消息显示为“不存在合适的构造函数来从“节点”转换为“节点”。我看到了一些与我的问题非常相似的问题,但我无法理解所提供的答案。我是新树数据结构概念,所以请尽量简单解释一下。

class Node {
    public:
        int data;
        Node* left;
        Node* right;
        Node(int value)
        {
            data = value;
            left = right = nullptr;
        }
    };
    Node* root = nullptr;
    
    Node insert(Node *node, int value)
    {
        if (node == nullptr)
        {
            node = new Node(value);
            return node;
       }
    
    }

您正试图返回一个指向Node的指针,但该方法的签名说您想要返回一个Node值。 将返回签名更改为Node的指针

Node* insert(Node *node, int value)
{
    if (node == nullptr)
    {
        node = new Node(value);
        return node;
    }
    // also problem here if node is a nullptr, how to handle this
    // you could throw exception or return nullptr
    return nullptr;

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM