본문 바로가기
Algorithm/LeetCode

[Java] 94. Binary Tree Inorder Traversal

by tabasco 2023. 6. 12.

문제 설명 :

tree에서 inorder Traversal을 구현하는 문제이다.

 

/**
 * 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 {
    public List<Integer> inorderTraversal(TreeNode root) {
        List<Integer> result = new ArrayList<Integer>();

        inOrder(root, result);

        return result;
    }

    private void inOrder(TreeNode tree, List<Integer> result){
        if(tree == null){
            return;
        }

        inOrder(tree.left, result);
        result.add(tree.val);
        inOrder(tree.right, result);
    }
}

 

해설 : 

- 중위순회는 왼쪽 자식, 자신, 오른쪽 자식으로 넘어가며 데이터를 읽는 방식이다. 따라서 이 순서대로 재귀적으로 순회를 시키며,

자신에게 왔을 때 val를 List에 담아주면 끝나는 문제다.

'Algorithm > LeetCode' 카테고리의 다른 글

[Java] 101. Symmetric Tree  (0) 2023.06.12
[Java] 100. Same Tree  (0) 2023.06.12
[Java] 88. Merge Sorted Array  (0) 2023.06.12
[Java] 83. Remove Duplicates from Sorted List  (0) 2023.06.09
[Java] 70. Climbing Stairs  (2) 2023.06.09