https://www.hackerrank.com/challenges/tree-level-order-traversal/problem
tree를 level order로 출력한다.
순서) root 노드 -> left child 노드 -> right child 노드
void levelOrder( struct node *root) {
struct node *queue[500], *head;
int q_head, q_end;
if(!root)
return;
else{
queue[0] = root;
q_head = 0;
q_end = 1;
while(q_head < q_end){
head = queue[q_head];
q_head++;
printf("%d ", head->data);
if (head->left)
queue[q_end++] = head->left;
if (head->right)
queue[q_end++] = head->right;
}
}
}
루트가 NULL이면 리턴하고 아니면 queue에 저장한다.
head에 queue의 헤드를 저장하고 q_head를 증가시킨다. head의 data를 출력한다.
left, right순으로 순회한다.
'HackerRank > Data Structures' 카테고리의 다른 글
[HackerRank] Trees > Tree : Height of a Binary Tree (0) | 2021.10.10 |
---|---|
[HackerRank] Stacks > Maximum Element (0) | 2021.10.03 |
[HackerRank] Linked Lists > Insert a Node at the Tail of a Linked List (0) | 2021.09.26 |
[HackerRank] Linked Lists > Print the Elements of a Linked List (0) | 2021.08.14 |
[HackerRank C] Tree : Inorder Traversal (0) | 2021.06.27 |