Skip to content

Commit 606b9ae

Browse files
committed
week2 attempt 3
1 parent e0715a4 commit 606b9ae

File tree

1 file changed

+90
-0
lines changed

1 file changed

+90
-0
lines changed
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
/**
2+
* Definition for a binary tree node.
3+
* class TreeNode {
4+
* val: number
5+
* left: TreeNode | null
6+
* right: TreeNode | null
7+
* constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
8+
* this.val = (val===undefined ? 0 : val)
9+
* this.left = (left===undefined ? null : left)
10+
* this.right = (right===undefined ? null : right)
11+
* }
12+
* }
13+
*/
14+
15+
/**
16+
1차 시도
17+
18+
function isValidBST(root: TreeNode | null): boolean {
19+
let result = true;
20+
21+
function validate(node: TreeNode) {
22+
if (node.left) {
23+
if (node.val > node.left.val) {
24+
validate(node.left);
25+
} else {
26+
result = false;
27+
}
28+
}
29+
30+
if (node.right) {
31+
if (node.val < node.right.val) {
32+
validate(node.right);
33+
} else {
34+
result = false;
35+
}
36+
}
37+
}
38+
39+
validate(root);
40+
return result;
41+
}
42+
*/
43+
44+
interface TreeNode {
45+
val: number;
46+
left: TreeNode;
47+
right: TreeNode;
48+
}
49+
50+
/** 2차 시도 실패 */
51+
function isValidBST(root: TreeNode | null): boolean {
52+
let result = true;
53+
54+
function validate(node: TreeNode, lstandard?: number, rstandard?: number) {
55+
if (node.left) {
56+
if (lstandard !== undefined && lstandard > node.left.val) {
57+
result = false;
58+
}
59+
60+
if (rstandard !== undefined && rstandard < node.left.val) {
61+
result = false;
62+
}
63+
64+
if (node.val > node.left.val) {
65+
validate(node.left, undefined, node.val);
66+
} else {
67+
result = false;
68+
}
69+
}
70+
71+
if (node.right) {
72+
if (lstandard !== undefined && lstandard > node.right.val) {
73+
result = false;
74+
}
75+
76+
if (rstandard !== undefined && rstandard < node.right.val) {
77+
result = false;
78+
}
79+
80+
if (node.val < node.right.val) {
81+
validate(node.right, node.val, undefined);
82+
} else {
83+
result = false;
84+
}
85+
}
86+
}
87+
88+
validate(root!);
89+
return result;
90+
}

0 commit comments

Comments
 (0)