반응형
1. 문제
- 이진트리가 주어질 때, 중위 순회 결과를 반환하라.
2. 해결
/**
* Definition for a binary tree node.
* class TreeNode {
* val: number
* left: TreeNode | null
* right: TreeNode | null
* constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
* }
*/
function DFS(node: TreeNode, result: number[]) {
if(!node) return;
DFS(node.left, result);
result.push(node.val);
DFS(node.right, result);
}
function inorderTraversal(root: TreeNode | null): number[] {
const result = []
DFS(root, result);
return result;
};
- 중위순회 순서대로 DFS 탐색을 수행하면 된다.
- 중위 순회: L - ROOT - R
- 전위 순회: ROOT - L - R
- 후위 순회: L - R - ROOT