개발 일지
101. Symmetric Tree (대칭 트리) 본문
이진 트리 root가 주어지면 트리가 미러인지 확인합니다 (즉, 중심을 중심으로 대칭).
예시 1:

입력: root = [1,2,2,3,4,4,3]
출력: true
예시 2:

입력: root = [1,2,2,null,3,null,3]
출력: false
조건:
- The number of nodes in the tree is in the range [1, 1000].
- -100 <= Node.val <= 100
제약 조건:
- 재귀적으로나 반복적으로 해결할 수 있습니까?
정답:
public class Solution {
public bool IsSymmetric(TreeNode root)
{
if(root == null)
return true;
return Tree(root.left, root.right);
}
private static bool Tree(TreeNode node1, TreeNode node2)
{
if(node1 == null && node2 == null)
return true;
if(node1 == null || node2 == null)
return false;
if(node1.val == node2.val)
return Tree(node1.left, node2.right) && Tree(node1.right, node2.left);
return false;
}
}
해설:
만약 노드가 null이라면 true를 return하고 한쪽만 null이라면 false를 return합니다.만약 null이 없다면 노드1의 왼쪽과 노드2의 오른쪽을 서로 비교하고 노드1의 오른쪽과 노드2의 왼쪽을 재귀로 체크합니다.
'코딩 테스트 > LeetCode' 카테고리의 다른 글
728. Self Dividing Numbers (자기 분할 숫자) (0) | 2023.05.15 |
---|---|
1662. Check If Two String Arrays are Equivalent (두 문자열 배열이 동일한지 확인) (0) | 2023.05.14 |
2119. A Number After a Double Reversal (이중 반전 후 숫자) (0) | 2023.05.11 |
17. Letter Combinations of a Phone Number (전화번호의 문자 조합) (1) | 2023.05.10 |
6. Zigzag Conversion (지그재그 변환) (0) | 2023.05.09 |