给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据保证新值和原始二叉搜索树中的任意节点值都不同。注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回任意有效的结果 。
中等难度。根据二叉搜索树的特性,通过递归二分查找的方式找到新节点的位置,然后新建节点,随后原路返回即可,实际难度不因该是中等的额。
public TreeNode insertIntoBST( TreeNode root, int val ){
//递归到最底部,以给定值为val新建Node返回
if( root == null ){
return new TreeNode( val );
}
int rootVal = root.val;
//比较,查找val节点所在的位置
if( rootVal < val ){
root.right = insertIntoBST( root.right, val );
}
else{
root.left = insertIntoBST( root.left, val );
}
//返回root
return root;
}