簡體   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