Skip to content

Commit d92bfe5

Browse files
author
Kohei Asai
authored
98. Validate Binary Search Tree (#76)
1 parent c001029 commit d92bfe5

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { createBinaryTreeNode } from "../utilities/TreeNode";
2+
import isValidBST from "./validateBinarySearchTree";
3+
4+
describe("98. Validate Binary Search Tree", () => {
5+
test("#1", () => {
6+
expect(isValidBST(createBinaryTreeNode([2, 1, 3]))).toBe(true);
7+
});
8+
9+
test("#2", () => {
10+
expect(isValidBST(createBinaryTreeNode([5, 1, 4, null, null, 3, 6]))).toBe(
11+
false
12+
);
13+
});
14+
15+
test("#3", () => {
16+
expect(isValidBST(createBinaryTreeNode([1, 1]))).toBe(false);
17+
});
18+
19+
test("#4", () => {
20+
expect(isValidBST(createBinaryTreeNode([]))).toBe(true);
21+
});
22+
});

solutions/validateBinarySearchTree.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { TreeNode } from "../utilities/TreeNode";
2+
3+
// 98. Validate Binary Search Tree
4+
// https://leetcode.com/problems/validate-binary-search-tree/
5+
export default function isValidBST(
6+
node: TreeNode<number> | null,
7+
greaterThan = -Infinity,
8+
lessThan = Infinity
9+
): boolean {
10+
if (node === null) return true;
11+
12+
return (
13+
node.val > greaterThan &&
14+
node.val < lessThan &&
15+
isValidBST(node.left, greaterThan, node.val) &&
16+
isValidBST(node.right, node.val, lessThan)
17+
);
18+
}

0 commit comments

Comments
 (0)