We have encountered some self adjustment strategies already, when dealing with linked lists. For Binary Trees self adjustment stems from an observation similar to one we encountered there.
Balancing a Binary Tree has focused on building a complete binary tree, with a view that this is the most efficient when searching for any node in it.
However, some nodes may be searched more frequently than others – so if these nodes appear near the top of a binary tree, searches become more efficient.
Strategies for self restructuring trees include; Single Rotation (rotating the node around its parent), or Move to Root.