894. All Possible Full Binary Trees

홍범선·2023년 1월 14일
0

894. All Possible Full Binary Trees

https://leetcode.com/problems/all-possible-full-binary-trees/

문제

풀이


위에 그림에서 알 수 있드시
dfs(3) => [1,1]
dfs(5) => [1,3], [3,1]
dfs(7) => [1,5], [3,3], [5,1]
이 된다.
dfs(3) = [1,1]로 리턴을 하게 된다면 dfs(5) = [1, [1, 1]], [[1, 1], 1]이 될 것이고 dfs(5)도 리턴을 하게된다면 dfs(7) = [1, [1, [1, 1]]] or [1, [[1, 1], 1]] or [[1, 1], [1, 1]] or [[1, [1, 1]], 1] or [[[1, 1], 1], 1]이 될 것이다.

  1. dfs(1)일 때에는 [TreeNode(0)]을 리턴할 것이고
  2. dfs(3)일 때에는 [1,1]인 트리노드를 리턴할 것이고
  3. dfs(5)일 때에는 [1, [1,1]]인 트리노드와 [[1,1], 1]인 트리노드를 리턴할 것이다. 이런식으로 해서 left, right변수에 트리노드 경우의 수를 나타내고 append후 리턴하는 방식이다.

느낀점

알고나니 쉽지만 몰랐을 때에는 어려운 문제였다. 계속해서 반복학습 해야겠다.

profile
알고리즘 정리 블로그입니다.

0개의 댓글

관련 채용 정보