104. Maximum Depth of Binary Tree

Bas·2022년 8월 15일
0

Leetcode

목록 보기
9/11

트리의 최대 깊이를 구하는 문제

  1. 깊이 변수 maxDepth (초기 값 0)을 선언하고 시작한다.
  2. node에 node.left 또는 node.right 가 있으면 maxDepth를 1씩 더해준다.
    -> 탈출 조건: 재귀함수(traversal)로 만들어서 node가 없으면 return
    -> traversal함수는 node와 depth를 인자로 받는다.
    traversal(node, depth)
  3. maxDepth를 반환한다
function maxDepth(root): number {
  // 시작 할 때 root가 []이어도, traversal 첫 번째 조건에서 return되기 때문에 맨 앞에 if (!root) return 0;을 해주지 않아도 된다.
  
    let maxDepth = 0
    
    const traversal = (node, depth) => {
        if(!node) return
        if (depth > maxDepth) {
          maxDepth = depth;  
        } 
      // left 또는 right가 있으면 depth에 1을 더해서 넘겨준다.
        traversal(node.left, depth + 1);
        traversal(node.right, depth + 1);
    }

    
    traversal(root, 1); 
    return maxDepth
  
};

https://www.youtube.com/watch?v=a4LNgiIcBTU

profile
바스버거

0개의 댓글