Advantages and disadvantages

The self adjusting data structures provides good performance, as it is self-optimizing, in that frequently accessed nodes will move nearer to the root where they can be accessed more quickly. The worst-case height-though unlikely-is $O(n)$, with the average being $O(\log~n)$. Having frequently used nodes near the root is an advantage for many practical applications: particularly useful for implementing caches and garbage collection algorithms.

Possibility of creating a persistent data structure version of splay trees-which allows access to both the previous and new versions after an update. This can be useful in functional programming. Working well with nodes containing identical keys-contrary to other types of self-balancing trees. All tree operations preserve the order of the identical nodes within the tree, which is a property similar to stable sorting algorithms. A carefully designed find operation can return the leftmost or rightmost node of a given key.

The disadvantage of splay trees is that the height of a splay tree can be linear. For example, this will be the case after accessing all $n$ elements in ascending order. Since the height of a tree corresponds to the worst-case access time, this means that the actual cost of an operation can be high.