701.二叉搜索树中的插入操作
一、题目描述
给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同。
注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回 任意有效的结果 。
提示:
- 树中的节点数将在 [0, 10^4]的范围内。
- -10^8 <= Node.val <= 10^8
- 所有值 Node.val 是 独一无二 的。
- -10^8 <= val <= 10^8
- 保证 val 在原始BST中不存在。
二、解题思路
根据二叉搜索树的特性。
递归法
只要遍历二叉搜索树,找到空节点 插入元素就可以了。
三、AC代码
递归法(后序遍历)
class Solution {
public TreeNode insertIntoBST(TreeNode root, int val) {
if (root == null) {
return new TreeNode(val);
}
if (root.val > val) {
root.left = insertIntoBST(root.left, val);
} else if (root.val < val) {
root.right = insertIntoBST(root.right, val);
}
return root;
}
}
参考代码随想录:https://programmercarl.com/