Update binary_search_tree.go

This commit is contained in:
Yudong Jin
2023-02-04 15:03:51 +08:00
parent 7d0d3df886
commit 55b65dc806
2 changed files with 21 additions and 21 deletions

View File

@ -68,13 +68,13 @@ func (bst *binarySearchTree) insert(num int) *TreeNode {
return nil
}
// 待插入结点之前的结点位置
var prev *TreeNode = nil
var pre *TreeNode = nil
// 循环查找,越过叶结点后跳出
for cur != nil {
if cur.Val == num {
return nil
}
prev = cur
pre = cur
if cur.Val < num {
cur = cur.Right
} else {
@ -83,10 +83,10 @@ func (bst *binarySearchTree) insert(num int) *TreeNode {
}
// 插入结点
node := NewTreeNode(num)
if prev.Val < num {
prev.Right = node
if pre.Val < num {
pre.Right = node
} else {
prev.Left = node
pre.Left = node
}
return cur
}
@ -99,13 +99,13 @@ func (bst *binarySearchTree) remove(num int) *TreeNode {
return nil
}
// 待删除结点之前的结点位置
var prev *TreeNode = nil
var pre *TreeNode = nil
// 循环查找,越过叶结点后跳出
for cur != nil {
if cur.Val == num {
break
}
prev = cur
pre = cur
if cur.Val < num {
// 待删除结点在右子树中
cur = cur.Right
@ -128,10 +128,10 @@ func (bst *binarySearchTree) remove(num int) *TreeNode {
child = cur.Right
}
// 将子结点替换为待删除结点
if prev.Left == cur {
prev.Left = child
if pre.Left == cur {
pre.Left = child
} else {
prev.Right = child
pre.Right = child
}
// 子结点数为 2
} else {