[Leetcode 701]二叉搜索树BST中插入元素

题目

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:

[Leetcode 701]二叉搜索树BST中插入元素

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

[Leetcode 701]二叉搜索树BST中插入元素

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

 

上一篇:php – 在另一个类中使用包含的类


下一篇:mysql – sql join on string = integer,适用于任何RDBMS