Separate BST from RBTree
Better node swap