문제 링크
문제 요구 조건
문제는 이진트리 중위 순회라는 문제에요. 중위 순회라는 의미는 왼쪽 자식 > 현재 노드 > 오른쪽 자식 의 순서로 방문하는 것을 의미해요. 
- root라는 연결노드 배열을 매개변수로 받아요.
- 중위순회대로 숫자배열을 반환해야 돼요.
저의 문제풀이?
아직 연결 노드 문제가 조금 어려운거 같아요. 전혀 풀지를 못해서 바로 풀이로 가실게요. ㅠ
문제 풀이
이 코드는 스택을 이용해서 트리의 노드들을 순서대로 방문하여 값을 배열에 추가해요. 중위 순회는 위에 말한 대로 
왼쪽 자식 > 현재 노드 > 오른쪽 자식 의 순서로 방문하는 것을 의미해요. 최고의 성능을 낸 풀이방법
/**
 * Definition for a binary tree node.
 * function TreeNode(val, left, right) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.left = (left===undefined ? null : left)
 *     this.right = (right===undefined ? null : right)
 * }
 */
/**
 * @param {TreeNode} root
 * @return {number[]}
 */
var inorderTraversal = function(root) {
    let current = root;
    let stack = [];
    let ans = [];
    while(current || stack.length){
        while(current){
            stack.push(current);
            current = current.left;
        }
        current = stack.pop();
        ans.push(current.val);
        current = current.right;
    }
    return ans;
};사용된 변수 설명
- current
현재 방문 중인 노드를 가리키는 변수에요. 시작은 트리의 
root 노드에요 - stack
아직 방문하지 않았지만, 나중에 다시 돌아와서 방문해야 될 부모 노드들을 임시로 저장하는 스택 자료구조에요. 
- ans
중위 순회 결과를 저장하는 배열이에요. 
코드 자체에는 총 두가지의 주요 단계로 나누어져요. 
- 가장 왼쪽 노드까지 이동 및 스택에 노드 쌓기
- while(current)루프는 현재 노드(- current)가- null이 아닐 때까지 반복해요.
- 이 루프 안에서 current노드를 스택에 푸시하고,current를current.left로 계속 업데이트 해요.
- 이 과정을 통해서 트리의 가장 왼쪽 끝 노드에 도달하게 되고, 그 경로에 있는 모든 부모 노드들이 스택에 차례대로 쌓이게 되죠.
- 이 단계가 끝나면 current는 null이 되고, 스택의 맨 위의 가장 왼쪽 노드가 위치하게 되요.
- 노드 방문 및 오른쪽 자식으로 이동
- 바깥 쪽의 while(current || stack.length)루프는current가null이거나 스택에 노드가 남아있는 동안 계속 실행되어요
- 첫 번째 while가 끝나면, 스택에서 노드를pop하여current에 할당 해요. 이 노드가 바로 트리의 가장 왼쪽 노드인 거죠.
- ans.push(current.val)코드를 통해 이 노드의 값을 결과 배열에 추가해요.
- 그리고 current = current.right코드를 통해current를 오른쪽 자식 노드로 업데이트해요. 이제 다음 순회는 오른쪽 자식 노드부터 시작하는 거죠.
- 만약 오른쪽 자식 노드가 있다면, 바깥 while루프의 다음 반복에서 다시 첫 번째while루프로 진입해서 그 노드의 가장 왼쪽 자식까지 탐색을 해요.
- 만약 오른쪽 자식 노드가 없다면, current는null이 되고, 스택에서 다음 노드를 팝하여 방문하게 되어요.

![[LeetCode] Binary Tree Inorder Traversal](/_next/image?url=https%3A%2F%2Fwww.notion.so%2Fimage%2Fattachment%253A24003284-054c-4114-a2cc-30c06200a54b%253A16.png%3Ftable%3Dblock%26id%3D26f9c76c-6cb4-8066-a899-d5e654c183d5%26spaceId%3Db4216657-966f-4c29-ae8c-42f6c4adb66d&w=3840&q=75)
