beepbeep

LeetCode 145번 : Binary Tree Postorder Traversal 본문

코딩테스트 연습/트리

LeetCode 145번 : Binary Tree Postorder Traversal

삑삑도요 2023. 2. 7. 16:23

문제

주어진 이진 트리를 후위 순회하는 문제이다.

 


살펴보기

저번에 본 144번 문제와 마찬가지로 이진 트리를 막 배웠을 때 기본 개념을 복습하기 좋은 문제같다!

 

후위 순회는

 

1. 왼쪽 하위 트리를 먼저 순회하고

2. 오른쪽 하위 트리를 순회한 다음

3. 마지막으로 현재 노드를 방문하는 방식의 순회이다.

 

144번 문제와 비슷한 방식으로 풀되,

현재 노드의 값을 리스트에 저장하는 시점을 하위 트리 순회가 끝난 후로 미루었다.

 


풀어보기

public List<Integer> postorderTraversal(TreeNode root) {
    List<Integer> list = new ArrayList<>();

    if(root!=null){
        postorderTraversal(list, root);
    }

    return list;
}

public void postorderTraversal(List<Integer> list, TreeNode root){
    if(root==null) return;

    if(root.left!=null) postorderTraversal(list, root.left);
    if(root.right!=null) postorderTraversal(list, root.right);

    list.add(root.val);
}