본문 바로가기
Leetcode

145. Binary Tree Postorder Traversal

by Doromi 2023. 11. 5.
728x90
반응형
이진 트리를 후위 순회(postorder traversal)하는 방법을 구현하는 문제입니다.

문제 설명:

주어진 이진 트리를 후위 순회(postorder traversal)하는 방법은 다음과 같습니다:

왼쪽 서브트리를 후위 순회합니다.
오른쪽 서브트리를 후위 순회합니다.
루트 노드를 방문합니다.
후위 순회는 왼쪽 서브트리와 오른쪽 서브트리를 모두 순회한 후에 루트 노드를 방문하는 순서입니다.

예를 들어, 다음과 같은 이진 트리가 주어진 경우:
    1
   / \
  2   3
 / \
4   5
후위 순회(postorder traversal)는 다음과 같은 순서로 노드를 방문합니다: 4 -> 5 -> 2 -> 3 -> 1

후위 순회를 구현하기 위해 재귀 함수를 사용하거나 스택을 활용할 수 있습니다.

 

public class Solution {
    public IList<int> PostorderTraversal(TreeNode root) {
        List<int> list = new List<int>();
        if(root ==  null) return list;
        Postorder(root,list);
        return list;
    }
    private void Postorder(TreeNode node,List<int> list){
        if(node == null) return;
        Postorder(node.left,list);
        Postorder(node.right,list);
        list.Add(node.val);
    }
}

 

코드는 먼저 빈 트리인 경우 빈 리스트를 반환합니다.

Postorder 메서드는 현재 노드를 방문하기 전에 왼쪽 서브트리를 먼저 후위 순회하고, 그 다음 오른쪽 서브트리를 후위 순회합니다.

노드를 방문한 후에는 해당 노드의 값을 리스트에 추가합니다.

주어진 코드는 후위 순회를 정확하게 수행하며, 결과를 리스트에 저장하여 반환합니다. 이러한 방식으로 주어진 이진 트리의 후위 순회를 얻을 수 있습니다.

 

728x90
반응형

'Leetcode' 카테고리의 다른 글

242. Valid Anagram  (0) 2023.11.07
168. Excel Sheet Column Title  (0) 2023.11.06
141. Linked List Cycle  (0) 2023.11.05
110. Balanced Binary Tree  (0) 2023.11.04
70. Climbing Stairs  (0) 2023.11.03