본문 바로가기
Beakjoon&프로그래머스/Java

[LeetCode/Java] 94. Binary Tree Inorder Traversal

by 현장 2025. 11. 23.

-Code

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    List<Integer> answer;
    public List<Integer> inorderTraversal(TreeNode root) {
        answer = new ArrayList<>();
        solution(root);
        return answer;
    }

    public void solution(TreeNode node) {
        // node가 null인경우 return
        if (node == null) return;
        // left가 null이 아닌 경우 재귀
        if (node.left != null) solution(node.left);
        // 중앙값 추가
        answer.add(node.val);
        // right가 null이 아닌 경우 재귀
        if (node.right != null) solution(node.right);
    }
}

중위 순환에 이라서 dfs와 관련이 있을거 같아 재귀로 풀어보려 했고 중간까지 접근했으나 TreeNode 객체를 통해 구현하는 것이고 중위 순환 구현도 처음이라 부족한 부분을 찾아서 해결하였습니다.