Может ли ваша очередь содержать один и тот же элемент в нескольких местах? если это возможно, тогда я не думаю, что вы можете сделать это, поскольку нет никакой возможности узнать разницу между:
a-> b-> с
и
a-> b-> c-> a-> b-> с
если он не может содержать один и тот же элемент более одного раза, просто просматривайте очередь, пока не найдете элемент, который вы уже видели