Leetcode/Top 100 Liked

[Binary Tree][Medium] 102. Binary Tree Level Order Traversal

자전거통학 2024. 3. 9. 22:35

https://leetcode.com/problems/binary-tree-level-order-traversal/description

 

Q. 해당 tree를 level 별로 데이터를 만들어 반환하라. 

 

 

 

Solution. 

 특정 자료구조 문제를 풀기 위해서 

 반드시 알아야 하는 기본 접근법들이 있다.  

 이 문제는 binary tree의 그런 문제들 중 하나로, 반드시 풀이법을 알아둬야 하겠다. 

 

더보기
vector<vector<int>> levelOrder(TreeNode* root) 
{
    queue<TreeNode*> qBuff;
    vector<vector<int>> vRet;
    if(root == NULL)
        return vRet;

    qBuff.push(root);
    while(!qBuff.empty())
    {
        int size = qBuff.size();
        vector<int> vLevel;
        for(int q = 0; q < size; ++q)
        {
            TreeNode* node = qBuff.front();
            qBuff.pop();

            vLevel.push_back( node->val );
            if(node->left != NULL)   qBuff.push(node->left);
            if(node->right != NULL)  qBuff.push(node->right);
        }
        vRet.push_back(vLevel);
    }
    return vRet;
}

 

결과.