На моменте 31:20 допущена небольшая ошибка. Функция jump из определения возвращает указатель на такую вершину, что её с предком будет связывать ребро с буквой c. Поэтому при возвращении надо делать проверку не на равенство корню, а на возможность перехода в вершину по ребру с и, если это возможно, то вернуть node->go[c]. А иначе просто вернуть вершину, которая будет в этот момент корнем.
На моменте 31:20 допущена небольшая ошибка. Функция jump из определения возвращает указатель на такую вершину, что её с предком будет связывать ребро с буквой c. Поэтому при возвращении надо делать проверку не на равенство корню, а на возможность перехода в вершину по ребру с и, если это возможно, то вернуть node->go[c]. А иначе просто вернуть вершину, которая будет в этот момент корнем.