주어진 트리가 대칭인지 확인하는 문제입니다
https://leetcode.com/problems/symmetric-tree/
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
* };
*/
class Solution {
public:
bool isSymmetric(TreeNode* root) {
TreeNode* left = root->left;
TreeNode* right = root->right;
vector<int> l;
vector<int> r;
leftTraversal(left, l);
rightTraversal(right, r);
if(l.size()!= r.size()) return false;
//123 123
int n = l.size();
for(int i=0;i<n;i++){
if(l[i] != r[i]){
return false;
}
}
return true;
}
void leftTraversal(TreeNode* root, vector<int>&L){
if(root)
{
L.push_back(root->val);
leftTraversal(root->left, L);
leftTraversal(root->right, L);
}else{
L.push_back(101);
return;
}
}
void rightTraversal(TreeNode* root, vector<int>& R){
if(root)
{
R.push_back(root->val);
rightTraversal(root->right, R);
rightTraversal(root->left, R);
}else{
R.push_back(101);
return;
}
}
};