1
var spiralMatrix = function (m, n, head) {
2
var matrix = new Array(m).fill().map(() => new Array(n).fill(-1));
3
var row = 0,
4
col = 0;
5
var direction = "right";
6
while (head) {
7
matrix[row][col] = head.val;
8
if (direction == "right") {
9
if (col + 1 == n || matrix[row][col + 1] != -1) {
10
direction = "down";
11
row++;
12
} else col++;
13
} else if (direction == "down") {
14
if (row + 1 == m || matrix[row + 1][col] != -1) {
15
direction = "left";
16
col--;
17
} else row++;
18
} else if (direction == "left") {
19
if (col == 0 || matrix[row][col - 1] != -1) {
20
direction = "up";
21
row--;
22
} else col--;
23
} else if (direction == "up") {
24
if (row == 0 || matrix[row - 1][col] != -1) {
25
direction = "right";
26
col++;
27
} else row--;
28
}
29
head = head.next;
30
}
31
return matrix;
32
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0