LeetCode > 94. Binary Tree Inorder Traversal (문제 의도를 잘 보자^^)

Doyeon Kim·2022년 3월 22일

코딩테스트 공부

목록 보기
39/171

문제 링크 : https://leetcode.com/problems/binary-tree-inorder-traversal/


처음에 테.케만 보고 그냥 배열에 넣으면 되는 줄 알았는데..

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
        
        out = []
        if root is None :
            return 0
        for i in range(len(root)):
            out.append(root[i])
        
        return out
        

결과:

TypeError: object of type 'TreeNode' has no len()
    for i in range(len(root)):
Line 13 in inorderTraversal (Solution.py)
    ret = Solution().inorderTraversal(param_1)
Line 37 in _driver (Solution.py)
    _driver()
Line 48 in <module> (Solution.py)

구글링을 했는데

트리 순회 방식중에서 in-order방식을 활용하여 탐색하라는 것이었다...

참고 ; https://lgphone.tistory.com/93

in-order방식은 left를 먼저 탐색한 뒤 - 노드- right 순으로 탐색한다.

이를 코드로 나타내면

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
        reuslt = [] 
        def dfs(node): 
            if node is not None: 
                dfs(node.left) 
                reuslt.append(node.val) 
                dfs(node.right) 
        dfs(root) 
        return reuslt

다음과 같다..
다음에 다시 한번 풀어봐야겠다.

profile
성장하고 도전하는 개발자. 프로그래밍 좋아하세요?

0개의 댓글