@@ -9,32 +9,32 @@ class LinkedList<T> {
9
9
}
10
10
11
11
init ? ( array: [ T ] ) {
12
- let reversed = Array ( array. reversed ( ) )
12
+ let reversed = Array ( array. reversed ( ) )
13
13
guard let first = array. first else {
14
14
return nil
15
15
}
16
-
17
- var tailLinkedList : LinkedList ? = nil
18
-
19
- for i in 0 ..< reversed. count - 1 {
20
- tailLinkedList = LinkedList ( next: tailLinkedList, value: reversed [ i] )
21
- }
22
-
23
- self . next = tailLinkedList
24
- self . value = first
16
+
17
+ var tailLinkedList : LinkedList ?
18
+
19
+ for i in 0 ..< reversed. count - 1 {
20
+ tailLinkedList = LinkedList ( next: tailLinkedList, value: reversed [ i] )
21
+ }
22
+
23
+ self . next = tailLinkedList
24
+ self . value = first
25
+ }
26
+
27
+ func array( ) -> Array < T > {
28
+ if let next = next {
29
+ return [ value] + next. array ( )
30
+ }
31
+ return [ value]
25
32
}
26
-
27
- func array( ) -> Array < T > {
28
- if let next = next {
29
- return [ value] + next. array ( )
30
- }
31
- return [ value]
32
- }
33
33
}
34
34
35
35
class DoublyLinkedList < T> {
36
36
let next : DoublyLinkedList ?
37
- private( set) var previous : DoublyLinkedList ? = nil
37
+ private( set) var previous : DoublyLinkedList ?
38
38
var head : DoublyLinkedList {
39
39
guard let previous = previous else {
40
40
return self
@@ -43,38 +43,37 @@ class DoublyLinkedList<T> {
43
43
}
44
44
45
45
var value : T
46
-
47
- init ( next: DoublyLinkedList ? , value: T ) {
48
- self . value = value
49
- self . next = next
50
- self . next? . previous = self
51
- }
52
-
53
-
54
- init ? ( array: [ T ] ) {
55
- let reversed = Array ( array. reversed ( ) )
56
- guard let first = array. first else {
57
- return nil
58
- }
59
-
60
- var tailDoublyLinkedList : DoublyLinkedList ? = nil
61
-
62
- for i in 0 ..< reversed. count - 1 {
63
- let nextTail = DoublyLinkedList ( next: tailDoublyLinkedList, value: reversed [ i] )
64
- tailDoublyLinkedList? . previous = nextTail
65
- tailDoublyLinkedList = nextTail
66
- }
67
-
68
- self . value = first
69
- self . next = tailDoublyLinkedList
70
- self . next? . previous = self
71
- }
46
+
47
+ init ( next: DoublyLinkedList ? , value: T ) {
48
+ self . value = value
49
+ self . next = next
50
+ self . next? . previous = self
51
+ }
52
+
53
+ init ? ( array: [ T ] ) {
54
+ let reversed = Array ( array. reversed ( ) )
55
+ guard let first = array. first else {
56
+ return nil
57
+ }
58
+
59
+ var tailDoublyLinkedList : DoublyLinkedList ?
60
+
61
+ for i in 0 ..< reversed. count - 1 {
62
+ let nextTail = DoublyLinkedList ( next: tailDoublyLinkedList, value: reversed [ i] )
63
+ tailDoublyLinkedList? . previous = nextTail
64
+ tailDoublyLinkedList = nextTail
65
+ }
66
+
67
+ self . value = first
68
+ self . next = tailDoublyLinkedList
69
+ self . next? . previous = self
70
+ }
72
71
73
72
convenience init ? ( linkedList: LinkedList < T > ? ) {
74
- guard let linkedList = linkedList else {
75
- return nil
76
- }
77
- self . init ( array: linkedList. array ( ) )
73
+ guard let linkedList = linkedList else {
74
+ return nil
75
+ }
76
+ self . init ( array: linkedList. array ( ) )
78
77
}
79
78
80
79
func array( ) -> Array < T > {
0 commit comments