# 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 eq(self, a, b):
if a == None and b == None: return -1
if a == None and b != None: return 0
if a != None and b == None: return 0
return 1 if a.val == b.val else 0
def isSymmetric(self, root: Optional[TreeNode]) -> bool:
x = self.eq(root.left, root.right)
if x == 0: return False
if x == -1: return True
s = deque([(root.left, root.right)])
while len(s):
c1, c2 = s.popleft()
x = self.eq(c1.left, c2.right)
if x == 0: return False
if x == 1: s.append((c1.left, c2.right))
x = self.eq(c1.right, c2.left)
if x == 0 : return False
if x == 1: s.append((c1.right, c2.left))
return True
그래도 None 체크하느라 꽤 귀찮았는데 Easy가 맞는지 모르겠다
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.