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

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;
}

    }
};

上一篇:[leetcode数据库12] 620. 有趣的电影


下一篇:Android ImageView加载base64图片 java.lang.IllegalArgumentException: bad base-64