728x90
반응형
이진 트리의 노드를 중위 순회(inorder traversal)하여 노드 값들을 리스트에 저장하는 문제입니다. 중위 순회는 트리를 다음과 같은 방식으로 순회합니다:
먼저, 왼쪽 하위 트리를 순회합니다.
현재 노드를 방문하고 처리합니다.
마지막으로, 오른쪽 하위 트리를 순회합니다.
즉, 이 문제에서는 이진 트리를 중위 순회하여 노드 값을 리스트에 저장해야 합니다.
문제 설명:
주어진 이진 트리의 루트 노드 root가 주어집니다. 이 트리를 중위 순회하여 나오는 노드 값들을 리스트에 저장하고, 그 리스트를 반환하세요.
예시:
만약 주어진 이진 트리가 다음과 같다고 가정하면:
1
\
2
/
3
중위 순회를 수행하면 노드 값 [1, 3, 2] 순서대로 리스트에 저장하고 반환해야 합니다.
노트:
중위 순회를 재귀적으로 구현하거나 반복적으로 구현할 수 있습니다.
중위 순회를 수행하면 노드 값이 오름차순으로 나타납니다.
이 문제를 해결하기 위해서는 이진 트리의 중위 순회를 구현해야 합니다. 주어진 트리를 재귀적으로 순회하거나 스택을 사용하여 반복적으로 순회하는 방법을 사용할 수 있습니다.
public IList<int> InorderTraversal(TreeNode root) {
List<int> list = new List<int>();
InorderTraversalHelper(root, list);
return list;
}
private void InorderTraversalHelper(TreeNode node, List<int> list) {
if (node == null) {
return;
}
InorderTraversalHelper(node.left, list); // 왼쪽 하위 트리 순회
list.Add(node.val); // 현재 노드 처리
InorderTraversalHelper(node.right, list); // 오른쪽 하위 트리 순회
}
728x90
반응형
'Leetcode' 카테고리의 다른 글
283. Move Zeroes (0) | 2023.10.31 |
---|---|
303. Range Sum Query - Immutable (0) | 2023.10.31 |
83. Remove Duplicates from Sorted List (0) | 2023.10.29 |
219. Contains Duplicate II (0) | 2023.10.28 |
268. Missing Number (0) | 2023.10.28 |