알고리즘/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
반응형