小塔正在欣赏他的一串宝石项链。这个项链还没有封口,是一条链,初始时从左到右宝石分别编1 2 3...n。然而经过一段时间端详,小塔觉得他应该把某颗宝石取下,然后放到某颗宝石的前面或者后面去,小塔在正式进行调整前,想请你帮他模拟一下他的若干次调整,希望你能告诉他经过他若干次调整后宝石项链的样子。
这道题实际上需要维护一个动态链表,但由于数据范围较大,使用暴力解法(即使用 list
逐个查找每个数的位置进行插入和删除)无法通过测试。
为了解决这个问题,我们可以使用双向链表进行优化。需要记录每个节点,以便快速定位特定元素。由于双向链表的特性,在链表的前后插入节点都非常方便,关键在于正确实现双向链表的插入和删除操作。