[리트코드] 100. Same Tree

2022. 2. 28. 08:58Python/코딩 문제

# 문제 설명

두 이진트리의 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

 

# 핵심 포인트

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

 

 

 

 

 

반응형

'Python > 코딩 문제' 카테고리의 다른 글

백준 3977. 축구 전술  (0) 2022.03.04
[리트코드] 139. Word Break  (0) 2022.03.02
[리트코드] 22. Gas Station  (0) 2022.02.25
[리트코드] 22. Generate Parentheses  (0) 2022.02.23
[리트코드] 208. Implement Trie (Prefix Tree)  (0) 2022.02.21