다음 재귀(recursion) 함수는 이진트리의 루트(root)를 가리키는 포인터를 사용하여 특정한 작업을 수행한다. 구체적으로 어떤 작업을 수행하는가?
typedef struct node_struct {
int data;
struct node_struct *left, *right;
} node_t;
void JOB_Tree(node_t *root) {
node_t *temp;
if (root == NULL) return;
temp = root->right;
root->right = root->left; root->left = temp;
JOB_Tree(root->left); JOB_Tree(root->right);
} - ①트리의 루트를 중심으로 좌우 대칭 이동
- ②트리의 루트를 중심으로 왼쪽 자식 트리를 오른쪽 자식 트리로 복사
- ③트리의 루트를 중심으로 왼쪽 자식 트리를 오른쪽 자식 트리로 이동
- ④트리의 루트를 중심으로 오른쪽 자식 트리를 왼쪽 자식 트리로 이동
선지를 골라 바로 채점해 보세요.
정답 ①
출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)