Evaluate Expression Tree

Tiffany ·2024년 3월 8일
0

AlgoExpert

목록 보기
11/20

bottom-up 보다는 직관적으로 이해하기 쉬운 top-down recursive 문제다. 탑-다운 인지 바톰-업 인지 보이면 그 다음부터는 수월하다.

# This is an input class. Do not edit.
class BinaryTree:
    def __init__(self, value, left=None, right=None):
        self.value = value
        self.left = left
        self.right = right

def evaluateExpressionTree(tree):
    if not tree.left and not tree.right:
        return tree.value
    # if tree.value >= 0:
    #     return tree.value 
    
    **resultl = evaluateExpressionTree(tree.left) 
    resultr = evaluateExpressionTree(tree.right) **
    if tree.value == -1:
        return resultl+ resultr
    elif tree.value == -2:
        return resultl - resultr
    elif tree.value == -3:
        return resultl // resultr
    elif tree.value == -4:
        return resultl * resultr
    

어떤 숫자가 어떤 연산자에 해당하는지 주의하여 if elif 를 차례로 나열한다. 연산자는 current tree's value 이고, 연산하기 위해서는 children't values 가 필요하므로, 리컬전을 이용해서 값을 구하고 연산.

profile
Love what you do and don't quit.

0개의 댓글