File tree Expand file tree Collapse file tree 1 file changed +63
-0
lines changed
lowest-common-ancestor-of-a-binary-search-tree Expand file tree Collapse file tree 1 file changed +63
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * [Problem]: [235] Lowest Common Ancestor of a Binary Search Tree
3
+ * (https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/description/)
4
+ */
5
+
6
+ class TreeNode {
7
+ val : number ;
8
+ left : TreeNode | null ;
9
+ right : TreeNode | null ;
10
+ constructor ( val ?: number , left ?: TreeNode | null , right ?: TreeNode | null ) {
11
+ this . val = val === undefined ? 0 : val ;
12
+ this . left = left === undefined ? null : left ;
13
+ this . right = right === undefined ? null : right ;
14
+ }
15
+ }
16
+
17
+ function lowestCommonAncestor (
18
+ root : TreeNode | null ,
19
+ p : TreeNode | null ,
20
+ q : TreeNode | null
21
+ ) : TreeNode | null {
22
+ //시간복잡도 O(h)
23
+ //공간복잡도 O(h)
24
+ function recursiveFunc (
25
+ root : TreeNode | null ,
26
+ p : TreeNode | null ,
27
+ q : TreeNode | null
28
+ ) : TreeNode | null {
29
+ if ( ! p || ! root || ! q ) return null ;
30
+ if ( p . val < root . val && q . val < root . val ) {
31
+ return recursiveFunc ( root . left , p , q ) ;
32
+ }
33
+ if ( root . val < p . val && root . val < q . val ) {
34
+ return recursiveFunc ( root . right , p , q ) ;
35
+ }
36
+
37
+ return root ;
38
+ }
39
+
40
+ //시간복잡도 O(h)
41
+ //공간복잡도 O(1)
42
+ function loopFunc (
43
+ root : TreeNode | null ,
44
+ p : TreeNode | null ,
45
+ q : TreeNode | null
46
+ ) : TreeNode | null {
47
+ if ( ! p || ! q || ! root ) return null ;
48
+
49
+ let node = root ;
50
+
51
+ while ( node ) {
52
+ if ( p . val < node . val && q . val < node . val ) {
53
+ node = node ?. left ! ;
54
+ } else if ( p . val > node . val && q . val > node . val ) {
55
+ node = node ?. right ! ;
56
+ } else {
57
+ return node ;
58
+ }
59
+ }
60
+
61
+ return null ;
62
+ }
63
+ }
You can’t perform that action at this time.
0 commit comments