Skip to content

Commit

Permalink
[Linked List] Refactor solution to Odd Even Linked List
Browse files Browse the repository at this point in the history
  • Loading branch information
soapyigu committed Aug 20, 2019
1 parent 7fc48ff commit 8032428
Showing 1 changed file with 12 additions and 14 deletions.
26 changes: 12 additions & 14 deletions LinkedList/OddEvenLinkedList.swift
Expand Up @@ -16,32 +16,30 @@

class OddEvenLinkedList {
func oddEvenList(_ head: ListNode?) -> ListNode? {
guard head != nil && head!.next != nil else {
guard head != nil, head!.next != nil else {
return head
}

let evenHead = head!.next
var p = head
var q = evenHead
var isEndEven = true
var prev = head, post = head!.next, isEndEven = true
let evenStart = post

while q!.next != nil {
let node = q!.next
while post!.next != nil {
prev!.next = post!.next

p!.next = node
prev = post
post = post!.next

p = q
q = node
isEndEven = !isEndEven
}

if isEndEven {
p!.next = evenHead
prev!.next = evenStart
} else {
p!.next = nil
q!.next = evenHead
prev!.next = nil
post!.next = evenStart
}


return head
}
}
}

0 comments on commit 8032428

Please sign in to comment.