TIL (2022.05.13)

ay.zip·2022년 5월 13일
0

TIL

목록 보기
40/47
post-thumbnail

Preorder Traversal 전위순휘
노드 - 왼쪽 서브트리 - 오른쪽 서브트리

class Solution {
public:
    vector<int> ans;
    void helper(TreeNode* root){
        if(!root) return;
        ans.push_back(root->val);
        helper(root->left);
        helper(root->right);
    }
    vector<int> preorderTraversal(TreeNode* root) {
        helper(root);
        return ans;
    }
};

Inorder Traversal 중위순회
왼쪽 서브트리 -> 노드 -> 오른쪽 서브트리

class Solution {
public:
    vector<int> ans;
    void helper(TreeNode* root){
        if(!root) return;
        helper(root->left);
        ans.push_back(root->val);
        helper(root->right);
    }
    vector<int> inorderTraversal(TreeNode* root) {
        helper(root);
        return ans;
    }
};

Postorder Traversal 후위순회
왼쪽 서브트리 -> 오른쪽 서브트리 -> 노드

class Solution {
public:
    vector<int> ans;
    void helper(TreeNode* root){
        if(!root) return;
        helper(root->left);
        helper(root->right);
        ans.push_back(root->val);
    }
    vector<int> postorderTraversal(TreeNode* root) {
        helper(root);
        return ans;
    }
};

Symmetric Tree

class Solution {
public:
    bool helper(TreeNode* left, TreeNode* right){
    // 둘 다 존재하지 않을 시 true
        if(!left&&!right) return true;
        // 둘 중에 하나만 없으면 false
        else if(!left||!right) return false;
        // 거울로 비춘다고 생각했을 때, left->val과 right->val은 같아야 한다. 
        else if(left->val!=right->val) return false;
        return helper(left->left,right->right)&&helper(left->right,right->left);
    }
    bool isSymmetric(TreeNode* root) {
        if(!root) return true;
        return helper(root->left,root->right);
    }
};

0개의 댓글

관련 채용 정보