반응형
Notice
Recent Posts
Recent Comments
- Today
- Total
작심삼일
[LeetCode] 102 | Binary Tree Level Order Traversal | Python 본문
728x90
반응형
문제 링크: https://leetcode.com/problems/binary-tree-level-order-traversal/
문제
Given the root of a binary tree, return the level order traversal of its nodes' values. (i.e., from left to right, level by level).
조건
- The number of nodes in the tree is in the range [0, 2000].
- -1000 <= Node.val <= 1000
내 풀이
ans를 2d 리스트를 만든다.
ans[depth]에는 해당 depth의 노드가 들어갈 것이다.
recursive하게 돌면서 ans[depth]에 depth를 추가한다.
이때, len(ans) > depth를 만족하지 않는다면 그 depth에 해당하는 노드 중 처음 노드가 들어간다는 뜻이 되므로 (아래 그림에서는 15에 해당) ans에 append 해준다.
코드
# 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 levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
if not root: return []
ans = [[]]
def traversal(root, depth):
if not root:
return
if len(ans) > depth:
ans[depth].append(root.val)
else:
ans.append([root.val])
traversal(root.left, depth+1)
traversal(root.right, depth+1)
traversal(root, 0)
return ans
728x90
반응형
'스터디 > 코테' 카테고리의 다른 글
[LeetCode] 695 | Max Area of Island | Python (0) | 2022.07.15 |
---|---|
[LeetCode] 105 | Construct Binary Tree from Preorder and Inorder Traversal | Python (0) | 2022.07.14 |
[LeetCode] 473 | Matchsticks to Square | Python (0) | 2022.07.12 |
[LeetCode] 199 | Binary Tree Right Side View | Python (0) | 2022.07.11 |
[LeetCode] 97 | Interleaving String | Python (0) | 2022.07.07 |
Comments