[Leetcode 701]二叉搜索树BST中插入元素
题目
BST二叉搜索树中插入元素
二叉搜索树:左边 https://leetcode.com/problems/insert-into-a-binary-search-tree/ You are given the 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: Example 2: Example 3: 思路 我什么时候能自己想出递归代码omg……每次看递归都觉得被降维打击…… 代码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.Input: root = [4,2,7,1,3], val = 5
Output: [4,2,7,1,3,5]
Explanation: Another accepted tree is:
Input: root = [40,20,60,10,30,50,70], val = 25
Output: [40,20,60,10,30,50,70,null,null,25]
Input: root = [4,2,7,1,3,null,null,null,null,null,null], val = 5
Output: [4,2,7,1,3,5]
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;
}