Leetcode Java Binary 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<>();
this.recursive(result, root);
return result;
}
private void recursive(List<Integer> result, TreeNode node) {
if (node != null) {
this.recursive(result, node.left);
result.add(node.val);
this.recursive(result, node.right);
}
}
}
결과
설명
-
이진 트리로 구성된 TreeNode를 전달하면, 각 노드 기준으로 좌측 자식 노드 -> 루트 노드 -> 우측 자식 노드 순으로 숫자를 나열하는 문제이다.
- 주어진 TreeNode인 root를 기준으로 재귀 호출을 통해 각 숫자들을 result에 넣어준다.
- node가 null이 아닌 경우, 노드가 존재하므로 아래의 순서대로 순차 실행을 한다.
- 좌측 자식 노드인 node.left를 node자리에 넣어 재귀 호출을 수행한다.
- result에 node의 val 값을 넣어준다.
- 우측 자식 노드인 node.right를 node 자리에 넣어 재귀 호출을 수행한다.
- node가 null이 아닌 경우, 노드가 존재하므로 아래의 순서대로 순차 실행을 한다.
- 재귀 호출이 완료되면 result를 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기