Gtx CS1332x III Notes
public void add(T data):
root <- rAdd(root, data)
private Node rAdd(Node curr, T data):
//base case
if curr == null:
size++
return new Node(data)
else if data < curr.data:
curr.left <- rAAdd(curr.left, data)
else if data > curr.data:
curr.right <- rAdd(curr.right, data)
return curr
注意条件中并没有 ==
,这种情况下,如果有重复的元素,那么会直接返回该重复的元素,并链接到其父节点上。这不会改变任何 BST 中已有的内容。
参考这里
height(leftChild) - height(rightChild)
,height 指子树高度height(null)
)会被视作 -1
|BF| > 1
BF = -1, 0, 1