43 lines
641 B
Go
43 lines
641 B
Go
package main
|
|
|
|
type TreeNode struct {
|
|
Val int
|
|
Left *TreeNode
|
|
Right *TreeNode
|
|
}
|
|
|
|
/**
|
|
* Definition for a binary tree node.
|
|
* type TreeNode struct {
|
|
* Val int
|
|
* Left *TreeNode
|
|
* Right *TreeNode
|
|
* }
|
|
*/
|
|
func insertIntoBST(root *TreeNode, val int) *TreeNode {
|
|
if root == nil {
|
|
return &TreeNode{
|
|
Val: val,
|
|
}
|
|
}
|
|
node := &TreeNode{
|
|
Val: val,
|
|
}
|
|
current := root
|
|
for {
|
|
if val < current.Val {
|
|
if current.Left == nil {
|
|
current.Left = node
|
|
return root
|
|
}
|
|
current = current.Left
|
|
} else {
|
|
if current.Right == nil {
|
|
current.Right = node
|
|
return root
|
|
}
|
|
current = current.Right
|
|
}
|
|
}
|
|
}
|