diff --git a/swift/0143-reorder-list.swift b/swift/0143-reorder-list.swift new file mode 100644 index 000000000..f0cfe2d69 --- /dev/null +++ b/swift/0143-reorder-list.swift @@ -0,0 +1,21 @@ +import DequeModule + +class Solution { + func reorderList(_ head: ListNode?) { + var queue = Deque() + var curr = head + while curr != nil { + queue.append(curr!) + curr = curr!.next + } + var lastNode: ListNode? + while !queue.isEmpty { + let leftNode = queue.popFirst() + let rightNode = queue.popLast() + rightNode?.next = nil + leftNode?.next = rightNode + lastNode?.next = leftNode + lastNode = rightNode + } + } +}