首页 > 解决方案 > 如何在 BST 插入中修复它并让插入功能工作

问题描述

Visual Studio 中显示的代码InsertBSTNode 函数错误。但我不知道如何解决它。要求是不要改变函数的类型。

树节点

 class TreeNode{   
    public:
    int data;
    TreeNode* left;
    TreeNode* right;

    TreeNode(int x): data(x), left(NULL), right(NULL){}
    };

插入BSTNode

void InsertBSTNode(TreeNode* &root, int val){
// Input your code here.
if (root==NULL){
    root->data=val;
    root->left=root->right=NULL;}
else if(val<root->data)
    root->left=InsertBSTNode(root->left,val);//error
else if(val>root->data)
    root->right=InsertBSTNode(root->right,val);//error
return root;//error

};

标签: c++data-structuresbinary-search-tree

解决方案


这是问题的解决方案。感谢@john 的帮助!

void InsertBSTNode(TreeNode* &root, int val){
if (root==NULL){
    root = new TreeNode(val);
    root->data=val;
    root->left=root->right=NULL;}
else if(val<root->data)
    InsertBSTNode(root->left,val);
else if(val>root->data)
    InsertBSTNode(root->right,val);
};

推荐阅读