|
1 | 1 | package com_github_leetcode |
2 | 2 |
|
3 | 3 | import java.util.StringJoiner |
| 4 | +import kotlin.collections.ArrayList |
4 | 5 |
|
5 | 6 | class Node { |
6 | 7 | var `val`: Int |
7 | | - var next: Node? = null |
8 | | - var random: Node? = null |
| 8 | + var neighbors: List<Node> |
9 | 9 |
|
10 | 10 | constructor() { |
11 | 11 | `val` = 0 |
| 12 | + neighbors = ArrayList() |
12 | 13 | } |
13 | 14 |
|
14 | 15 | constructor(`val`: Int) { |
15 | 16 | this.`val` = `val` |
| 17 | + neighbors = ArrayList() |
16 | 18 | } |
17 | 19 |
|
18 | | - constructor(`val`: Int, next: Node?, random: Node?) { |
| 20 | + constructor(`val`: Int, neighbors: List<Node>) { |
19 | 21 | this.`val` = `val` |
20 | | - this.next = next |
21 | | - this.random = random |
| 22 | + this.neighbors = neighbors |
22 | 23 | } |
23 | 24 |
|
24 | 25 | override fun toString(): String { |
25 | 26 | val result = StringJoiner(",", "[", "]") |
26 | | - val result2 = StringJoiner(",", "[", "]") |
27 | | - result2.add(`val`.toString()) |
28 | | - if (random == null) { |
29 | | - result2.add("null") |
30 | | - } else { |
31 | | - result2.add(random!!.`val`.toString()) |
32 | | - } |
33 | | - result.add(result2.toString()) |
34 | | - var curr = next |
35 | | - while (curr != null) { |
36 | | - val result3 = StringJoiner(",", "[", "]") |
37 | | - result3.add(curr.`val`.toString()) |
38 | | - if (curr.random == null) { |
39 | | - result3.add("null") |
| 27 | + for (node in neighbors) { |
| 28 | + if (node.neighbors.isEmpty()) { |
| 29 | + result.add(node.`val`.toString()) |
40 | 30 | } else { |
41 | | - var randomIndex = 0 |
42 | | - var curr2: Node? = this |
43 | | - while (curr2!!.next != null && curr2 !== curr.random) { |
44 | | - randomIndex += 1 |
45 | | - curr2 = curr2.next |
| 31 | + val result2 = StringJoiner(",", "[", "]") |
| 32 | + for (nodeItem in node.neighbors) { |
| 33 | + result2.add(nodeItem.`val`.toString()) |
46 | 34 | } |
47 | | - result3.add(randomIndex.toString()) |
| 35 | + result.add(result2.toString()) |
48 | 36 | } |
49 | | - result.add(result3.toString()) |
50 | | - curr = curr.next |
51 | 37 | } |
52 | 38 | return result.toString() |
53 | 39 | } |
|
0 commit comments