-
Notifications
You must be signed in to change notification settings - Fork 0
/
linked-list-get-node-value.js
103 lines (76 loc) · 1.71 KB
/
linked-list-get-node-value.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
/*
get node value
Write a function, getNodeValue, that takes in the head of a linked list and an index. The function should return the value of the linked list at the specified index.
If there is no node at the given index, then return null.
test_00:
const a = new Node("a");
const b = new Node("b");
const c = new Node("c");
const d = new Node("d");
a.next = b;
b.next = c;
c.next = d;
// a -> b -> c -> d
getNodeValue(a, 2); // 'c'
test_01:
const a = new Node("a");
const b = new Node("b");
const c = new Node("c");
const d = new Node("d");
a.next = b;
b.next = c;
c.next = d;
// a -> b -> c -> d
getNodeValue(a, 3); // 'd'
test_02:
const a = new Node("a");
const b = new Node("b");
const c = new Node("c");
const d = new Node("d");
a.next = b;
b.next = c;
c.next = d;
// a -> b -> c -> d
getNodeValue(a, 7); // null
test_03:
const node1 = new Node("banana");
const node2 = new Node("mango");
node1.next = node2;
// banana -> mango
getNodeValue(node1, 0); // 'banana'
test_04:
const node1 = new Node("banana");
const node2 = new Node("mango");
node1.next = node2;
// banana -> mango
getNodeValue(node1, 1); // 'mango'
*/
// class Node {
// constructor(val) {
// this.val = val;
// this.next = null;
// }
// }
//recursive
// const getNodeValue = (head, index) => {
// if (head === null) return null;
// if (index === 0) return head.val;
// getNodeValue(head.index, index - 1);
// };
// module.exports = {
// getNodeValue
// };
//iterative version
const getNodeValue = (head, index) => {
let current = head;
let count = 0;
while (current !== null) {
if (count === index) return current.val;
current = current.next;
count++;
}
return null;
};
module.exports = {
getNodeValue
};