어흥
[해커랭크] Tree: Level Order Traversal (C++) 본문
728x90
반응형
문제링크: www.hackerrank.com/challenges/tree-level-order-traversal/problem
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
반응형
'알고리즘 > HackerRank' 카테고리의 다른 글
[해커랭크] Binary Search Tree : Lowest Common Ancestor (C++) (0) | 2021.01.22 |
---|---|
[해커랭크] Binary Search Tree : Insertion (C++) (0) | 2021.01.20 |
[해커랭크] Tree: Height of a Binary Tree (C++) (0) | 2021.01.20 |
[해커랭크] Preorder, Inorder, Postorder traversal (C++) (0) | 2021.01.20 |
[해커랭크] Find Merge Point of Two Lists (C++) (0) | 2021.01.15 |
Comments