728x90
www.hackerrank.com/challenges/tree-preorder-traversal/problem
Data Structures > Trees
트리가 주어지면 preorder로 출력하는 함수 preOrder()를 작성한다.
코드
void preOrder(struct node *root) {
struct node *temp;
temp = root;
if (temp){
printf("%d ", temp->data);
if (temp->left)
preOrder(temp->left);
if (temp->right)
preOrder(temp->right);
}
}
설명
노드가 NULL이 아닐 때, 해당 노드의 값을 출력한다.
preorder로 출력해야 하기 때문에 노드의 left부터 살펴본다.
만약 노드의 left가 NULL이 아니라면 left에 대하여 preOrder 함수를 호출한다.
이렇게 재귀적으로 left의 모든 노드의 출력이 끝나면 다시 root 노드로 돌아와 right에 대해 같은 과정을 반복한다.
728x90
'C & C++ > HackerRank' 카테고리의 다른 글
[HackerRank] Tree: Inorder Traversal (0) | 2021.05.19 |
---|---|
[HackerRank] Tree: Postorder Traversal (0) | 2021.05.13 |
[HackerRank] Insertion Sort - Part 2 (0) | 2021.04.08 |
[HackerRank] Insertion Sort - Part 1 (0) | 2021.04.01 |
[HackerRank] Intro to Tutorial Challenges (0) | 2021.03.27 |