본문 바로가기
Leetcode

144. Binary Tree Preorder Traversal

by Doromi 2023. 11. 9.
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