1
1
package com_github_leetcode.random
2
2
3
- import java.util.StringJoiner
4
-
5
3
class Node {
6
4
var `val `: Int
7
5
var next: Node ? = null
@@ -12,33 +10,38 @@ class Node {
12
10
}
13
11
14
12
override fun toString (): String {
15
- val result = StringJoiner (" ," , " [" , " ]" )
16
- val result2 = StringJoiner (" ," , " [" , " ]" )
17
- result2.add(`val `.toString())
13
+ val result = StringBuilder ()
14
+ result.append(" [" )
15
+ result.append(" [" )
16
+ result.append(`val `)
17
+ result.append(" ," )
18
18
if (random == null ) {
19
- result2.add (" null" )
19
+ result.append (" null" )
20
20
} else {
21
- result2.add (random!! .`val `.toString() )
21
+ result.append (random!! .`val `)
22
22
}
23
- result.add(result2.toString() )
23
+ result.append( " ] " )
24
24
var curr = next
25
25
while (curr != null ) {
26
- val result3 = StringJoiner (" ," , " [" , " ]" )
27
- result3.add(curr.`val `.toString())
26
+ result.append(" ," )
27
+ result.append(" [" )
28
+ result.append(curr.`val `)
29
+ result.append(" ," )
28
30
if (curr.random == null ) {
29
- result3.add (" null" )
31
+ result.append (" null" )
30
32
} else {
31
33
var randomIndex = 0
32
- var curr2 : Node ? = this
33
- while (curr2 !! .next != null && curr2 != = curr.random) {
34
- randomIndex + = 1
35
- curr2 = curr2 .next
34
+ var indexFinder : Node ? = this
35
+ while (indexFinder !! .next != null && indexFinder != = curr.random) {
36
+ randomIndex++
37
+ indexFinder = indexFinder .next
36
38
}
37
- result3.add (randomIndex.toString() )
39
+ result.append (randomIndex)
38
40
}
39
- result.add(result3.toString() )
41
+ result.append( " ] " )
40
42
curr = curr.next
41
43
}
44
+ result.append(" ]" )
42
45
return result.toString()
43
46
}
44
47
}
0 commit comments