짱아의 개발 기록장

LeetCode : 102. Binary Tree Level Order Traversal 본문

Algorithm/LeetCode

LeetCode : 102. Binary Tree Level Order Traversal

jungahshin 2021. 1. 1. 15:51
반응형

BFS를 통해서 간단하게 해결할 수 있는 문제이다.

 

[메인 로직]

간단히 말해서, 같은 level에 있는 값들을 하나의 벡터에 넣어주고

그것을 다시 최종 ans벡터에 넣어주는??? 그런 로직이다.

코드를 보면 더 잘 이해가 될 것이라 생각한다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
class Solution {
public:
    vector<vector<int>> levelOrder(TreeNode* root) {
        vector<vector<int>> ans;
        if(root==NULL){
            return ans;
        }
        vector<int> v;
        queue<TreeNode*> q;
        q.push(root);
        
        while(!q.empty()){
           int size = q.size();
        
            for(int i=0; i<size; i++){
                TreeNode* node = q.front();
                v.push_back(node->val);
                q.pop();
                
                if(node->left!=NULL){
                    q.push(node->left);
                }
                
                if(node->right!=NULL){
                    q.push(node->right);
                }
            }
            
            ans.push_back(v);
            v.clear();
        }
        
        return ans;  
    }
};
cs
반응형
Comments