[Leetcode] 94, 144, 145. binary tree traversal

in kr-dev •  last year  (edited)

서론

Leetcode를 아시나요?

Leetcode는 여러 프로그래밍 언어로 자료구조를 공부할 수 있고,

코딩문제들을 풀어볼 수 있습니다.

Leetcode에서는 easy, medium, hard로 분류되는 총 804개의 코딩 문제가 있습니다.

804개에서 자신이 원하는 키워드를 검색해서 풀 수도 있으며,

자료구조에 대해 공부하고, 문제를 풀 수 있게도 해줍니다.

image.png

거기다가 visual studio code에서 leetcode 플러그인은 연동하여,

vs code에서 코드를 작성하고, 제출할 수 있습니다. 편합니다.

image.png

아래는 문제 풀이 후, 나중에 보기 위해 기록한 것입니다. 존댓말로 작성되어있지 않습니다.


문제

트리 탐색 문제는 모아서 한번에 풀었다.

풀이 과정

  • 재귀적으로 풀 것인가? (Recursive)
  • 반복적인 방법을 풀 것인가? (Iterative)
  • 재귀적인 방법은 공책에 그림을 그리면서 했다.
  • 솔루션을 찾아보니 Tree 구조를 변경하는 방식도 있었다.
  • 항상 햇갈렸는데 트리를 봤을 때 아래 코드를 생각하면 어떤 순서로 접근할지 그려진다.
    • preorder이면 list에 값 넣는 것을 제일 먼저
    • inorder이면 left와 right 사이에
    • postorder이면 맨 뒤에 넣으면 된다.

image.png

어려웠던 점

  • 재귀함수를 호출하지 않고, 구현을 하려고 하니 어려웠다.
  • 다른 사람이 어떻게 했는지 한 번 보고 작성하였다.
  • Stack을 활용하여 재귀함수를 호출하지 않고 구현 가능하였고, 나도 다시 구현을 해보았다.

Submission

  • NULL 체크하는 것을 깜빡했다.
    image.png

감사합니다.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

짱짱맨 호출에 출동했습니다!!