반응형
SMALL
루트 노드를 기준으로 양쪽 노드가 거울을 바라보고 있는 형태를 띄는지 bool 값으로 결과를 보여라.
solution 1.
왼쪽 노드와 오른쪽 노드를 재귀로 비교할 수 있다.
왼쪽 노드와 오른쪽 노드가 둘 다 없을 경우 양쪽이 동일한 경우니까 True를 리턴하고 왼쪽, 오른쪽 중 한 곳만 존재하지 않을 경우 False를 리턴한다.
그리고 왼쪽 오른쪽 노드의 값이 같고 왼쪽 오른쪽을 바꿔서 재귀를 하여 나온 결과가 서로 같을 경우 왼쪽과 오른쪽이 같다는 것이므로 True를 리턴한다.
그리고 그 외의 경우도 False를 리턴한다.
class Solution:
def isSymmetric(self, root: Optional[TreeNode]) -> bool:
def same(R, L):
if R is None and L is None:
return True
if R is None or L is None:
return False
if R and L:
return R.val == L.val and same(R.left, L.right) and same(R.right, L.left)
return False
if not root:
return True
return same(root.left, root.right)
반응형
LIST
'[ leetcode ]' 카테고리의 다른 글
141. Linked List Cycle (0) | 2023.01.01 |
---|---|
118. Pascal's Triangle (0) | 2022.12.27 |
94. Binary Tree Inorder Traversal (0) | 2022.12.18 |
88. Merge Sorted Array (0) | 2022.12.18 |
69. Sqrt(x) (0) | 2022.12.17 |