File tree Expand file tree Collapse file tree 1 file changed +80
-0
lines changed
Filter options
May-LeetCoding-Challenge/16-Odd-Even-Linked-List Expand file tree Collapse file tree 1 file changed +80
-0
lines changed
Original file line number Diff line number Diff line change
1
+ class OddEvenLinkedListKotlin328 {
2
+ fun oddEvenList (head : ListNode ? ): ListNode ? {
3
+ if (head?.next?.next == null ) {
4
+ return head
5
+ }
6
+ val evenHead = head.next
7
+
8
+ var odd = head
9
+ var even = head.next
10
+ var current = even
11
+ var count = 0
12
+ while (current?.next != null ) {
13
+ current = current.next
14
+ if (count % 2 == 0 ) {
15
+ odd?.next = current
16
+ odd = current
17
+ } else {
18
+ even?.next = current
19
+ even = current
20
+ }
21
+ count++
22
+ }
23
+ even?.next = null
24
+ odd?.next = evenHead
25
+ return head
26
+ }
27
+ /*
28
+ fun oddEvenList(head: ListNode?): ListNode? {
29
+ if (head?.next?.next == null) {
30
+ return head
31
+ }
32
+ val evenHead = head.next
33
+
34
+ var odd = head
35
+ var even = head.next
36
+ var current = even
37
+ var isOdd = true
38
+ while (current?.next != null) {
39
+ current = current.next
40
+ if (isOdd) {
41
+ isOdd = !isOdd
42
+ odd?.next = current
43
+ odd = current
44
+ } else {
45
+ isOdd = !isOdd
46
+ even?.next = current
47
+ even = current
48
+ }
49
+ }
50
+ even?.next = null
51
+ odd?.next = evenHead
52
+ return head
53
+ }
54
+ */
55
+
56
+ class ListNode (var `val `: Int ) {
57
+ var next: ListNode ? = null
58
+ }
59
+ }
60
+
61
+ fun main () {
62
+ val node1 = OddEvenLinkedListKotlin328 .ListNode (1 )
63
+ val node2 = OddEvenLinkedListKotlin328 .ListNode (2 )
64
+ val node3 = OddEvenLinkedListKotlin328 .ListNode (3 )
65
+ val node4 = OddEvenLinkedListKotlin328 .ListNode (4 )
66
+ val node5 = OddEvenLinkedListKotlin328 .ListNode (5 )
67
+ node1.next = node2
68
+ node2.next = node3
69
+ node3.next = node4
70
+ node4.next = node5
71
+
72
+ val solution = OddEvenLinkedListKotlin328 ()
73
+ var result = solution.oddEvenList(node1)
74
+
75
+ while (result?.next != null ) {
76
+ println (result.`val `)
77
+ result = result.next
78
+ }
79
+ println (result?.`val `)
80
+ }
You can’t perform that action at this time.
0 commit comments