ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 235. Lowest Common Ancestor of a Binary Search Tree (작성중)
    카테고리 없음 2020. 5. 30. 19:46

    BST의 특성을 이용한 문제

    1. Recursive

    # 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':
            
            if p.val < root.val and q.val < root.val:
                return self.lowestCommonAncestor(root.left, p, q)
            elif p.val > root.val and q.val > root.val:
                return self.lowestCommonAncestor(root.right, p, q)
            else:
                return root
            

    2. Iterative

    class Solution:
        def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode':
            node = root
            
            while node:
                if p.val < node.val and q.val < node.val:
                    node = node.left
                elif p.val > node.val and q.val > node.val:
                    node = node.right
                else:
                    return node
            return root

    댓글

Designed by Tistory.