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
'LeetCode' 카테고리의 다른 글
[LeetCode] Easy - 100 Same Tree (0) | 2023.01.10 |
---|---|
[LeetCode] Hard - 149 Max Points on a Line (11) | 2023.01.08 |
[LeetCode] Medium - 134 Gas Station (1) | 2023.01.07 |
[LeetCode] Medium - 452 Minimum Number of Arrows to Burst Balloons (0) | 2023.01.05 |
[LeetCode] Medium - 1834 Single-Threaded CPU (0) | 2023.01.04 |