UNPKG

1.05 kBJavaScriptView Raw
1/**
2 * 辅助 LeetCode 调试的方法
3 */
4
5/**
6 * 转换数组为 interval 类型的数组
7 * 如:[[1, 2], [3, 5]] => [{start: 1, end: 2}, {start: 3, end: 5}]
8 */
9class Interval {
10 constructor(start, end) {
11 this.start = start;
12 this.end = end;
13 }
14
15 toString() {
16 return `[${this.start}, ${this.end}]`;
17 }
18}
19exports.intervalCreator = arr => arr.map(([start, end]) => new Interval(start, end));
20
21/**
22 *
23 * 转换数组为链表结构
24 * 如:[1, 2] => {val: 1, next: {val: 2, next: null}}
25 */
26class ListNode {
27 constructor(val) {
28 this.val = val;
29 this.next = null;
30 }
31
32 toString() {
33 let str = `${this.val}`;
34 let node = this.next;
35 while (node) {
36 str += ` -> ${node.val}`;
37 node = node.next;
38 }
39 return str;
40 }
41}
42exports.linkedListCreator = (arr) => {
43 const head = new ListNode(null);
44 if (!arr.length) {
45 return head;
46 }
47
48 for (let i = arr.length - 1; i !== -1; i--) {
49 const node = new ListNode(arr[i]);
50 node.next = head.next;
51 head.next = node;
52 }
53 return head.next;
54};