From a96ce74a19fd361e87ad2b565851de4882336f94 Mon Sep 17 00:00:00 2001 From: Hojeong Park Date: Sat, 19 Sep 2026 23:43:06 +0900 Subject: [PATCH 1/2] lowest-common-ancestor-of-a-binary-search-tree solution --- .../parkhojeong.py | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 lowest-common-ancestor-of-a-binary-search-tree/parkhojeong.py diff --git a/lowest-common-ancestor-of-a-binary-search-tree/parkhojeong.py b/lowest-common-ancestor-of-a-binary-search-tree/parkhojeong.py new file mode 100644 index 0000000000..449bd4aced --- /dev/null +++ b/lowest-common-ancestor-of-a-binary-search-tree/parkhojeong.py @@ -0,0 +1,29 @@ +# Definition for a binary tree node. +# class TreeNode: +# def __init__(self, x): +# self.val = x +# self.left = None +# self.right = None + +class Solution: + def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode': + + def search(node: TreeNode, target: int): + stack = [node] + arr = [] + while stack: + node = stack.pop() + arr.append(node) + if node.val > target: + stack.append(node.left) + elif node.val < target: + stack.append(node.right) + + return arr + + arr1 = set(search(root, p.val)) + arr2 = search(root, q.val) + + for node in arr2[::-1]: + if node in arr1: + return node From 4711b6340a021b98e8a8e0f415592a20b652d84b Mon Sep 17 00:00:00 2001 From: Hojeong Park Date: Sat, 19 Sep 2026 23:43:06 +0900 Subject: [PATCH 2/2] kth-smallest-element-in-a-bst solution --- kth-smallest-element-in-a-bst/parkhojeong.py | 21 ++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 kth-smallest-element-in-a-bst/parkhojeong.py diff --git a/kth-smallest-element-in-a-bst/parkhojeong.py b/kth-smallest-element-in-a-bst/parkhojeong.py new file mode 100644 index 0000000000..b3888f8f7d --- /dev/null +++ b/kth-smallest-element-in-a-bst/parkhojeong.py @@ -0,0 +1,21 @@ +# Definition for a binary tree node. +# class TreeNode: +# def __init__(self, val=0, left=None, right=None): +# self.val = val +# self.left = left +# self.right = right +class Solution: + def kthSmallest(self, root: TreeNode | None, k: int) -> int: + arr = [] + + def inorrder(node: TreeNode): + if node.left: + inorrder(node.left) + + arr.append(node.val) + + if node.right: + inorrder(node.right) + + inorrder(root) + return arr[k - 1]