mirror of
https://gitlab.com/mfocko/LeetCode.git
synced 2024-11-10 00:09:06 +01:00
37 lines
802 B
Ruby
37 lines
802 B
Ruby
|
# Definition for a binary tree node.
|
||
|
# class TreeNode
|
||
|
# attr_accessor :val, :left, :right
|
||
|
# def initialize(val = 0, left = nil, right = nil)
|
||
|
# @val = val
|
||
|
# @left = left
|
||
|
# @right = right
|
||
|
# end
|
||
|
# end
|
||
|
# @param {TreeNode} root
|
||
|
# @param {Integer} val
|
||
|
# @return {TreeNode}
|
||
|
def insert_into_bst(root, val)
|
||
|
new_node = TreeNode.new(val)
|
||
|
if root == nil then
|
||
|
return new_node
|
||
|
end
|
||
|
|
||
|
node = root
|
||
|
while (val < node.val && node.left != nil) || (val >= node.val && node.right != nil) do
|
||
|
if val < node.val then
|
||
|
node = node.left
|
||
|
else
|
||
|
node = node.right
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# insert the node
|
||
|
if val < node.val then
|
||
|
node.left = new_node
|
||
|
else
|
||
|
node.right = new_node
|
||
|
end
|
||
|
|
||
|
return root
|
||
|
end
|