插入BST

时间:2016-11-07 00:08:21

标签: c++11 insert binary-search-tree

我在插入时遇到了问题。这是正确的答案。

/*
Node is defined as 

typedef struct node
{
   int data;
   node * left;
   node * right;
}node;

*/


node * insert(node * root, int value)
{
    if(root == NULL)
    {
        node *temp = new node();
        temp->left = NULL;
        temp->right = NULL;
        temp->data = value;
        root = temp;
        return root;
    }
   if(value > root->data)
   {
      root->right = insert(root->right, value);
   }
    else
        root->left = insert(root->left, value);
   return root;
}

我所做的解决方案的唯一区别是在if / else语句中我没有分配任何东西。这是我的代码。 节点定义为

typedef struct node
{
   int data;
   node * left;
   node * right;
}node;

*/


node * insert(node * root, int value)
{
    if(root == NULL)
    {
        node *temp = new node();
        temp->left = NULL;
        temp->right = NULL;
        temp->data = value;
        root = temp;
        return root;
    }
   if(value > root->data)
   {
      insert(root->right, value);
   }
    else
        insert(root->left, value);
   return root;
}

我不确定我理解为什么这是必要的,因为基本上递归调用此函数将为具有数据值的节点找到正确的位置。 然后,我用正确的数据创建节点,然后将其插入那里。 我将留下问题的链接。 https://www.hackerrank.com/challenges/binary-search-tree-insertion

感谢您的帮助!

0 个答案:

没有答案