반응형

 

이번 문제는 2개의 tree를 인자로 받아 같은지 체크하는 문제입니다.

 

Tree의 경우 문제에서 아래와 같은 클래스로 정의하고 있습니다.

 

class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None

 

저의 경우에는 아래와 같은 로직을 재귀를 통해 완전 탐색하도록 하여 문제를 풀었습니다.

 

0. 2개의 현재 focus되고 있는 노드 객체가 맞는지 체크

1. 현재 값이 같은지 체크

2. 왼쪽 노드 체크

3. 오른쪽 노드 체크

 

코드는 아래와 같습니다.

 

class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None

class Solution:
    def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
        if p == q == None: return True
        elif p == None or q == None: return False
        return (p.val == q.val and self.isSameLeftRight(p.left, q.left) and self.isSameLeftRight(p.right, q.right))

    def isSameLeftRight(self, p: TreeNode, q: TreeNode):
        if p == q == None: return True
        elif p == None or q == None: return False
        else: return (p.val == q.val and self.isSameLeftRight(p.left, q.left) and self.isSameLeftRight(p.right, q.right))

 

감사합니다.

반응형

+ Recent posts