Skip to content

Commit d1649c4

Browse files
authored
Merge pull request #31 from tusharmath/linkedlist-extensions
refactor(linkedlist): add forEach helper function
2 parents 86f0dbc + 044c449 commit d1649c4

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

src/lib/LinkedList.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,14 @@ export class LinkedList<T> {
4343
return node
4444
}
4545

46+
forEach (f: ((value: T) => void)) {
47+
var node = this.__head
48+
while (node) {
49+
f(node.value)
50+
node = node.left
51+
}
52+
}
53+
4654
remove (n: Node<T>) {
4755
if (n.left && n.right) {
4856
n.left.right = n.right

test/test.LinkedList.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
/**
22
* Created by tushar.mathur on 09/10/16.
33
*/
4-
5-
64
import test from 'ava'
75
import {LinkedList} from '../src/lib/LinkedList'
86

@@ -70,3 +68,14 @@ test('remove(): Remove LAST', t => {
7068
t.deepEqual(toArray(q), [])
7169
t.is(q.length, 0)
7270
})
71+
72+
test('forEach()', t => {
73+
const results: number[] = []
74+
const q = LinkedList.of<number>()
75+
q.add(1)
76+
q.add(2)
77+
q.add(3)
78+
q.add(4)
79+
q.forEach(i => results.push(i * 100))
80+
t.deepEqual(results, [400, 300, 200, 100])
81+
})

0 commit comments

Comments
 (0)