c++ - 如何在 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
};
解决方案
这是问题的解决方案。感谢@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);
};
推荐阅读
- javascript - 结合谷歌地图(基本的 Javascript 问题)
- reactjs - 测试运行时模拟商店抛出错误
- oauth-2.0 - Oauth 同意屏幕表格
- c# - 在 ASP.NET Core 上调用 Debug.BreakAll 时避免跳转到 Visual Studio 2017 中的 Program.cs
- java - 恢复线程后不停止处理
- php - `print_r($mysqli,1)` 改变 `$mysqli->affected_rows `
- c++ - Arduino编程添加毫秒延迟
- python - 使用 pandas 标记每组的第 N 行
- excel - Office 365 - Excel 小数加法
- postgresql - 如何创建 PostgreSQL db-f1-micro 实例?