Python/코딩 문제

[리트코드] 100. Same Tree

green_ne 2022. 2. 28. 08:58

# 문제 설명

두 이진트리의 root가 주어질 때, 이들이 같은 트리인지 반환해라.

 

# 입출력 예시

입력 출력
p = [1,2,3]
q = [1,2,3]
True
p = [1,2]
q = [1,null,2]
False
p = [1,2,1]
q = [1,1,2]
False

 

# 코드 풀이

# 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 isSameTree(self, p: Optional[TreeNode], q: Optional[TreeNode]) -> bool:
        if not p and not q:
            return True
        elif not p or not q:
            return False
        
        if p.val != q.val:
            return False
        if self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right):
            return True

 

# 핵심 포인트

  • 현재 노드에서 어떤 조건들이 필요한지 파악한다.

 

 

 

 

 

반응형