这是作为队列
的结构给出的 type 'a dqnode = {
v: 'a;
mutable next: 'a dqnode option;
mutable prev: 'a dqnode option;
}
type 'a deque = {
mutable head: 'a dqnode option;
mutable tail: 'a dqnode option;
}
我试图反转队列,我知道我想切换每个节点的指针。例如,如果我将队列中的dqnode选项与某些n匹配,那么我想更改n.next< - n.prev和n.prev(在原始状态下)< - n.next
有没有办法在我的代码开头存储一个dqnode选项,以便我可以切换两个指针?
类似的东西:
let newnode1:'a dqnode option = n.prev in
n.prev <- n.next; n.next <- newnode1
否则,我最终会在n.next位置找到两个指针。
答案 0 :(得分:1)
您对问题的描述完全正确,您提出的解决方案也是正确的。