A suffix tree implementation of Ukkonen algorithm
Tested for the following cases:
- "banana"
- "adeacdade"
- "abcabxabcd"
- "abcdefabxybcdmnabcdex"
- "abcadak"
- "abcabxabcd"
- "mississippi"
- "ooooooooo"
- "aa"
- "dodo"
- "dedododeodo"
The implementation is applied to solve a hard leetcode problem (longest common substring) and get accepted by its online judge system: https://leetcode.com/problems/longest-common-subpath/discuss/1357875/Suffix-Tree-greater-DFS-greater-Suffix-Array-greater-Longest-Common-Prefix-greater-Monotonic-Queue-greater-Sliding-window.