728x90
반응형
이진 트리를 전위 순회(preorder traversal)하는 방법을 구현하는 문제입니다.
문제 설명:
주어진 이진 트리를 전위 순회(preorder traversal)하는 방법은 다음과 같습니다:
루트 노드를 방문합니다.
왼쪽 서브트리를 전위 순회합니다.
오른쪽 서브트리를 전위 순회합니다.
전위 순회는 루트 노드를 가장 먼저 방문하고, 그 다음에 왼쪽 서브트리와 오른쪽 서브트리를 방문하는 순서입니다. 이 과정을 재귀적으로 수행하면 전체 이진 트리를 전위 순회할 수 있습니다.
예를 들어, 다음과 같은 이진 트리가 주어진 경우:
1
/ \
2 3
/ \
4 5
전위 순회(preorder traversal)는 다음과 같은 순서로 노드를 방문합니다: 1 -> 2 -> 4 -> 5 -> 3
이 문제를 해결하기 위해 재귀 함수를 사용하거나 스택을 활용하여 전위 순회를 구현할 수 있습니다.
public class Solution {
public IList<int> PreorderTraversal(TreeNode root) {
List<int> list = new List<int>();
Preorder(root, list);
return list;
}
private void Preorder(TreeNode node, List<int> list) {
if (node == null) {
return;
}
list.Add(node.val); // 현재 노드를 방문
Preorder(node.left, list); // 왼쪽 서브트리를 전위 순회
Preorder(node.right, list); // 오른쪽 서브트리를 전위 순회
}
}
728x90
반응형
'Leetcode' 카테고리의 다른 글
160. Intersection of Two Linked Lists (0) | 2023.11.15 |
---|---|
455. Assign Cookies (0) | 2023.11.10 |
389. Find the Difference (0) | 2023.11.08 |
367. Valid Perfect Square (0) | 2023.11.08 |
350. Intersection of Two Arrays II (0) | 2023.11.07 |