320x100
https://leetcode.com/problems/symmetric-tree/
트리가 가운데 세로를 기준으로 대칭형인가 판별하는 문제인데
요약하자면 왼쪽의 왼쪽과 오른쪽의 오른쪽이 같아야 하고, 왼쪽의 오른쪽과 오른쪽의 왼쪽이 같아야 한다.
class Solution {
public:
bool compareSubTree(TreeNode* left, TreeNode* right) {
if (nullptr == left && nullptr == right) {
return true;
}
if (nullptr == left || nullptr == right) {
return false;
}
if (left->val != right->val) {
return false;
}
/*
좌측 자식트리의 왼쪽 값과 우측 자식트리의 오른쪽 값이,
좌측 자식트리의 오른쪽 값과 우측 자식트리의 왼쪽 값이 같아야함
*/
return compareSubTree(left->left, right->right) && compareSubTree(left->right, right->left);
}
bool isSymmetric(TreeNode* root) {
return compareSubTree(root, root);
}
};
320x100
'코딩테스트 준비 > leetcode' 카테고리의 다른 글
1775. Equal Sum Arrays With Minimum Number of Operations [Medium] (0) | 2021.06.14 |
---|---|
36. Valid Sudoku [Medium] (0) | 2021.06.13 |
1796. Second Largest Digit in a String [Easy] (0) | 2021.06.12 |
1753. Maximum Score From Removing Stones [Medium] (0) | 2021.06.12 |
112. Path Sum [Easy] (0) | 2021.06.09 |