어흥

[해커랭크] Tree: Level Order Traversal (C++) 본문

알고리즘/HackerRank

[해커랭크] Tree: Level Order Traversal (C++)

라이언납시오 2021. 1. 20. 16:09
728x90
반응형

문제링크: www.hackerrank.com/challenges/tree-level-order-traversal/problem

 

Tree: Level Order Traversal | HackerRank

Level order traversal of a binary tree.

www.hackerrank.com

1. 주의할 점

- Queue를 이용하여 구조체를 담도록 한다.

 

2. 구현

- Queue<Node*> q를 이용하여 Node형태의 원소를 담을 수 있는 큐를 생성한다

- Root가 nullptr이 아니라면 큐에 넣고, While문을 큐에 원소가 없을때까지 수행한다

- 큐에서 원소를 1개 뽑은 후, 해당 값을 출력하고 해당 Node의 왼쪽, 오른쪽 자식이 있으면 순서대로 큐에 넣는다

 

queue<Node*> q;
    void levelOrder(Node * root) {
        if(root!=nullptr)
            q.push(root);
        while(!q.empty()){
            Node *node = q.front();
            q.pop();
            cout << node->data<<" ";
            if(node->left!=nullptr)
                q.push(node->left);
            if(node->right!=nullptr)
                q.push(node->right);
        }       
    }
728x90
반응형
Comments