type BSTree struct { Val int Left *BSTree Right *BSTree }
funcSearchBST(t *BSTree, v int) *BSTree { if t == nil { returnnil } if t.Val == v { return t } if v < t.Val { return SearchBST(t.Left, v) } if v > t.Val { return SearchBST(t.Right, v) } }
插入
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
funcInsertBST(t *BSTree, v int) (*BSTree, error) { if t == nil { return &BSTree{ Val: v }, nil } if t.Val == v { return t, errors.New("Invalid Insert Value") } if t.Val > v { t.Left = InsertBST(t.Left, v) } if t.Val < v { t.Right = InsertBST(t.Right, v) } return t }