코딩테스트/HackerRank

[HackerRank] Tree: Level Order Traversal

ankisile 2020. 6. 13. 21:16

https://www.hackerrank.com/challenges/tree-level-order-traversal/problem

 

Tree: Level Order Traversal | HackerRank

Level order traversal of a binary tree.

www.hackerrank.com

레벨 순회는 큐를 이용한다.

큐의 FIFO(First In First Out)을 이용하여 큐에 root를 저장하고 그다음 꺼낸다음 root의 자식을 큐에 저장한다. 다시 큐에서 노드를 꺼낸 다음 그 노드의 자식을 저장하고 이를 꺼낸 노드가 null이 아닐때까지 계속 시행하면 된다. 

 

큐를 사용하기 위해 struct node * 타입의 que 배열을 사용한다. 

큐를 사용하기 위해 front와 rear 변수를 사용하고 이 두변수를 0으로 초기화 한다.

 

무한 루프가 돌아가고 root가 null이면 break된다.

root에는 que에 가장 먼저 저장된 노드가 들어가게 되고 이 노드가 null이 아니면 노드의 데이트를 출력을 하고 왼쪽 자식과 오른쪽 자식이 각각 있으면 que에 왼쪽 자식과 오른쪽 자식을 저장한다.