バイナリ検索ツリー(BST)とツリーに挿入される値のルートノード所与、BSTに値を挿入します。挿入後BSTのルートノードを返します。新しい値が元BSTに存在しないことが保証されます。
限りツリーが挿入後BSTのままとして、挿入するための複数の有効な方法が存在することに注意してください。あなたはそれらのいずれかを返すことができます。
例えば、
Given the tree:
4
/ \
2 7
/ \
1 3
And the value to insert: 5
You can return this binary search tree:
4
/ \
2 7
/ \ /
1 3 5
This tree is also valid:
5
/ \
2 7
/ \
1 3
\
4
ソリューション
class Solution {
public TreeNode insertIntoBST(TreeNode root, int val) {
insert( root, val);
return root;
}
public void insert(TreeNode root, int val) {
if(root.val>val){
if(root.left!=null){
insert(root.left, val);
}else{
root.left = new TreeNode(val);
}
}else if(root.val<val){
if(root.right!=null){
insert(root.right,val);
}else{
root.right = new TreeNode(val);
}
}
}
}
ランタイム:0ミリ秒、バイナリ検索ツリーに挿入するためのJavaオンライン提出のより速い100.00パーセント。
メモリ使用率:38.2メガバイト、バイナリ検索ツリーに挿入するためのJavaオンライン提出未満の99.93パーセント。