在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ Given a sorted linked list, delete all duplicates such that each element appear only once. Example 1: Input: 1->1->2 Output: 1->2 Example 2: Input: 1->1->2->3->3 Output: 1->2->3 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例 1: 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1->1->2->3->3 输出: 1->2->3 28ms 1 /** 2 * Definition for singly-linked list. 3 * public class ListNode { 4 * public var val: Int 5 * public var next: ListNode? 6 * public init(_ val: Int) { 7 * self.val = val 8 * self.next = nil 9 * } 10 * } 11 */ 12 class Solution { 13 func deleteDuplicates(_ head: ListNode?) -> ListNode? { 14 var temp = head 15 while temp != nil { 16 if temp?.next?.val == temp?.val { 17 temp?.next = temp?.next?.next 18 } else { 19 temp = temp?.next 20 } 21 } 22 23 return head 24 } 25 } 32ms 1 /** 2 * Definition for singly-linked list. 3 * public class ListNode { 4 * public var val: Int 5 * public var next: ListNode? 6 * public init(_ val: Int) { 7 * self.val = val 8 * self.next = nil 9 * } 10 * } 11 */ 12 class Solution { 13 func deleteDuplicates(_ head: ListNode?) -> ListNode? { 14 15 var node: ListNode? = head 16 var next: ListNode? = nil 17 18 while node != nil { 19 20 next = node!.next 21 while next != nil && next!.val == node!.val { 22 next = next!.next 23 } 24 25 node!.next = next 26 node = next 27 } 28 29 return head 30 } 31 } 60ms 1 class Solution { 2 func deleteDuplicates(_ head: ListNode?) -> ListNode? { 3 var r = head 4 while r?.next != nil { 5 if r?.val == r?.next?.val { 6 r?.next = r?.next?.next 7 } else { 8 r = r?.next 9 } 10 } 11 return head 12 } 13 } 64ms 1 /** 2 * Definition for singly-linked list. 3 * public class ListNode { 4 * public var val: Int 5 * public var next: ListNode? 6 * public init(_ val: Int) { 7 * self.val = val 8 * self.next = nil 9 * } 10 * } 11 */ 12 class Solution { 13 14 func deleteDuplicates(_ head: ListNode?) -> ListNode? { 15 guard var head = head else{ 16 return nil 17 } 18 19 func remove(_ current:ListNode, _ previous:ListNode? = nil) { 20 guard let pre = previous else{ 21 if current.next != nil { 22 remove(current.next!,current) 23 } 24 return 25 } 26 if pre.val == current.val { 27 pre.next = current.next 28 if current.next != nil { 29 remove(current.next!,pre) 30 } 31 return 32 }else{ 33 if current.next != nil { 34 remove(current.next!,current) 35 } 36 } 37 } 38 39 remove(head) 40 return head 41 } 42 43 }
|
请发表评论