class TreeNode {
value: number
left: TreeNode | null
right: TreeNode | null
constructor(
value: number = 0,
left: TreeNode | null = null,
right: TreeNode | null = null
) {
this.value = value
this.left = left
this.right = right
}
setLeft(node: TreeNode) {
this.left = node
}
setRight(node: TreeNode) {
this.right = node
}
}
function insertNode(head: TreeNode | null, value: number): TreeNode | null {
if (head === null) {
head = new TreeNode(value)
return head
}
if (head.value < value) {
head.right = insertNode(head.right, value)
} else {
head.left = insertNode(head.left, value)
}
return head
}