其他分享
首页 > 其他分享> > LeetCode 701 二叉搜索树中的插入操作

LeetCode 701 二叉搜索树中的插入操作

作者:互联网

 

 题目链接:力扣

插入一个数,就是先找到插入位置,然后进行插入操作。

思路:递归

递归函数声明:

 TreeNode* insertIntoBST(TreeNode* root, int val);

递归出口:

如果根节点不为空,val < root->val且root左子树为空,val建立节点插入到根节点的左子树

如果根节点不为空,val > root->val且root右子树为空,val建立节点插入到根节点的右子树

如果根节点为空,返回以val值的节点

递归体: 

如果root->val小于val,val插入到左子树

如果root->val大于val,val插入到右子树

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    TreeNode* insertIntoBST(TreeNode* root, int val) {
if(root==NULL)
{
    TreeNode *node=new TreeNode(val);
    return node;
}
if(!root->left&&val<root->val)
{
    TreeNode *node=new TreeNode(val);
    root->left=node;
    return root;
}
if(!root->right&&val>root->val)
{
    TreeNode *node=new TreeNode(val);
    root->right=node;
    return root;
}
if(root->val>val)
{
    TreeNode *node=insertIntoBST(root->left,val);
    root->left=node;
    return root;
}
else
{
    TreeNode *node=insertIntoBST(root->right,val);
    root->right=node;
    return root;
}

    }
};

标签:node,right,TreeNode,val,树中,701,root,LeetCode,left
来源: https://blog.csdn.net/m0_52043808/article/details/121426715