[Leetcode 701]二叉搜索树BST中插入元素
阅读原文时间:2023年07月05日阅读:1

题目

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