[LeetCode] SameTree? - Python

mincheol2·2022년 7월 25일
0

알고리즘

목록 보기
2/4

문제

문제링크
https://leetcode.com/problems/same-tree/

이진 트리가 2개 주어졌을 때 같은 트리인지 판별하세요.

# 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

해결 : 재귀 + 조건문

  • 재귀적으로 트리순회
  • 조건이 맞지 않으면 False , 조건이 맞으면 True 반환
class Solution:
    def isSameTree(self, p: Optional[TreeNode], q: Optional[TreeNode]) -> bool:
    	if not p and not q: # 둘다 niull
        	return True
        if not p or not q: # 둘중 하나가 null
        	return False
        if p.val != q.val: # 두 노드의 value가 다름
        	return False
        return self.isSameTree(p.right, q.right) and # 순회하면서 value가 일치하면 통과 
        	   self.isSameTree(p.left, q.left)
    
profile
옹오옹오오오옹ㅇㅇ

0개의 댓글