Swiftを使用して二重リンクリストを逆順にするコードがあります。しかし、swap
機能が隣のノードでcurrentNode
をスワップしているかどうか混乱していますか?それとも2つの隣接ノードを交換していますか?Swiftで二重リンクリストを逆転する
例: リンクリストは、値表現: 1 - > 2 - >
3は、それが最初の実行で1と2を交換していますか?それとも1と3を交換していますか?どの値が最初の実行でスワップされますか?
public func reverse() {
var node = head
while let currentNode = node {
node = currentNode.next
swap(¤tNode.next, ¤tNode.previous)
head = currentNode
}
}
最初の実行では、A.prev = nullではありませんか? –
@ Maria9905です。値を入れ替えるとA.next = nullになります。なぜなら最初の要素が最後の要素になるからです。 – algrid