题目

BST二叉搜索树中插入元素

二叉搜索树:左边<root<右边

https://leetcode.com/problems/insert-into-a-binary-search-tree/

You are given the root node of a binary search tree (BST) and a value to insert into the tree. Return the root node of the BST after the insertion. It is guaranteed that the new value does not exist in the original BST.

Notice that there may exist multiple valid ways for the insertion, as long as the tree remains a BST after insertion. You can return any of them.

 

Example 1:

Input: root = [4,2,7,1,3], val = 5
Output: [4,2,7,1,3,5]
Explanation: Another accepted tree is:

Example 2:

Input: root = [40,20,60,10,30,50,70], val = 25
Output: [40,20,60,10,30,50,70,null,null,25]

Example 3:

Input: root = [4,2,7,1,3,null,null,null,null,null,null], val = 5
Output: [4,2,7,1,3,5]

 

思路

我什么时候能自己想出递归代码omg……每次看递归都觉得被降维打击……

 

 

代码

 

    public TreeNode insertIntoBST(TreeNode root, int val) {
        if (root==null){
            TreeNode addNode=new TreeNode(val);
            return addNode;
        }
        if(val<root.val){
            root.left=insertIntoBST(root.left,val);//小,左边插入
        }
        if (val>root.val){
            root.right=insertIntoBST(root.right,val);//大,右边插入
        }
        return root;
    }

 

 posted on 2021-12-04 08:10  alau  阅读(65)  评论(0编辑  收藏  举报