Skip to content

Commit 54b0cf4

Browse files
author
Kohei Asai
authored
94. Binary Tree Inorder Traversal (#96)
1 parent 82fa2e5 commit 54b0cf4

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { createBinaryTreeNode } from "../utilities/TreeNode";
2+
import inorderTraversal from "./binaryTreeInorderTraversal";
3+
4+
describe("94. Binary Tree Inorder Traversal", () => {
5+
const TEST_CASES = new Map([
6+
[[1, null, 2, 3], [1, 3, 2]],
7+
[[4, 4, 5, 1, 2], [1, 4, 2, 4, 5]],
8+
[
9+
[1, null, 1, null, 1, null, 1, null, 1, null, 1, 2],
10+
[1, 1, 1, 1, 1, 2, 1]
11+
],
12+
[[1], [1]],
13+
[[], []]
14+
]);
15+
16+
for (const [tree, expected] of TEST_CASES) {
17+
it(`returns [${expected}] when called with [${tree}]`, () => {
18+
expect(inorderTraversal(createBinaryTreeNode(tree))).toEqual(expected);
19+
});
20+
}
21+
});
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { TreeNode } from "../utilities/TreeNode";
2+
3+
// 94. Binary Tree Inorder Traversal
4+
// https://leetcode.com/problems/binary-tree-inorder-traversal/
5+
export default function inorderTraversal<T>(root: TreeNode<T> | null): T[] {
6+
const history: T[] = [];
7+
8+
function traverse(node: TreeNode<T> | null): void {
9+
if (node === null) return;
10+
11+
traverse(node.left);
12+
13+
history.push(node.val);
14+
15+
traverse(node.right);
16+
}
17+
18+
traverse(root);
19+
20+
return history;
21+
}

0 commit comments

Comments
 (0)