Skip to content

Commit aa31d49

Browse files
author
Kohei Asai
authored
145. Binary Tree Postorder Traversal (#97)
1 parent 54b0cf4 commit aa31d49

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-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 postorderTraversal from "./binaryTreePostorderTraversal";
3+
4+
describe("145. Binary Tree Postorder Traversal", () => {
5+
const TEST_CASES = new Map([
6+
[[1, null, 2, 3], [3, 2, 1]],
7+
[[4, 4, 5, 1, 2], [1, 2, 4, 5, 4]],
8+
[
9+
[1, null, 1, null, 1, null, 1, null, 1, null, 1, 2],
10+
[2, 1, 1, 1, 1, 1, 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(postorderTraversal(createBinaryTreeNode(tree))).toEqual(expected);
19+
});
20+
}
21+
});
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { TreeNode } from "../utilities/TreeNode";
2+
3+
// 145. Binary Tree Postorder Traversal
4+
// https://leetcode.com/problems/binary-tree-postorder-traversal/
5+
export default function postorderTraversal<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+
traverse(node.right);
13+
14+
history.push(node.val);
15+
}
16+
17+
traverse(root);
18+
19+
return history;
20+
}

0 commit comments

Comments
 (0)