LeetCode

[LeetCode] Easy - 144 Binary Tree Preorder Traversal

NIMHO 2023. 1. 9. 14:02
728x90

▶144 - Binary Tree Preorder Traversal

문제

Given the root of a binary tree, return the preorder traversal of its nodes' values.

 

예제

Input: root = [1,null,2,3]
Output: [1,2,3]

 

 

Input: root = []
Output: []
Input: root = [1]
Output: [1]
728x90

풀이

자료구조 때 배운 방식으로 preorder를 구성해서 풀었다.preorder는 left, right를 가기 전에 현재 node의 value값을 저장하거나 출력하는 방식이다.

# 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 preorderTraversal(self, root: Optional[TreeNode]) -> List[int]:        
        self.answer = []
        self.preorder(root)
        return self.answer

    def preorder(self, root):
            if root is None:
                return
            self.answer.append(root.val)
            self.preorder(root.left)
            self.preorder(root.right)

아직 헷갈리는 점은, preorder를 preorderTraversal 함수 안에 구현했을 때는 중간에 오류가 난다는 점이다.

그리고, self를 언제 어떻게 붙여야하는지도 아직은 잘 못하는 것 같다.

일단은 주어진 testcase를 돌리면서 에러가 나지않게 구현하였다.

728x90