From 69496a6b7d6245a70a54d37c3c8dbeacd1601f2a Mon Sep 17 00:00:00 2001 From: Yi Gu Date: Sat, 24 Dec 2016 10:51:22 -0800 Subject: [PATCH] [LinkedList] Optimize solution to Remove LinkedList Element --- LinkedList/RemoveLinkedListElements.swift | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/LinkedList/RemoveLinkedListElements.swift b/LinkedList/RemoveLinkedListElements.swift index a306e595..bbdb9652 100644 --- a/LinkedList/RemoveLinkedListElements.swift +++ b/LinkedList/RemoveLinkedListElements.swift @@ -15,24 +15,18 @@ */ class RemoveLinkedListElements { - func removeElements(head: ListNode?, _ val: Int) -> ListNode? { + func removeElements(_ head: ListNode?, _ val: Int) -> ListNode? { let dummy = ListNode(0) dummy.next = head + var node = dummy - var prev = dummy - var curr = head - - while curr != nil { - if curr!.val == val { - curr = curr!.next + while node.next != nil { + if node.next!.val == val { + node.next = node.next!.next } else { - prev.next = curr - prev = curr! - curr = curr!.next + node = node.next! } } - // remember to handle the last one - prev.next = nil return dummy.next }