반응형
이번 문제는 주어진 트리의 각 depth 별로 수를 수집하여 List<List> 형식으로 반환해야합니다.
반환 값은 left -> right 로 숫자가 있어야 하며, 맨 아래 depth 의 값부터 들어있어야합니다.
저는 depth 값을 같이 넘겨주며, 트리를 모두 탐색하도록 하였습니다.
그리고, 마지막으로는 완성된 List를 reverse하도록 했습니다.
코드는 아래와 같습니다.
from typing import List
class TreeNode:
def __init__(self, x):
self.val = x
self.right = None
self.left = None
class Solution:
def levelOrderBottom(self, root: TreeNode) -> List[List[int]]:
if root == None: return []
if root.right == None and root.left == None: return [[root.val]]
res = [[root.val]]
depth = 0
self.find(root.left, depth + 1, res)
self.find(root.right, depth + 1, res)
res.reverse()
return res
def find(self, root: TreeNode, depth: int, res: List[List[int]]):
if root == None: return
if root != None:
if len(res) <= depth:
res.insert(depth, [root.val])
else:
res[depth].append(root.val)
self.find(root.left, depth + 1, res)
self.find(root.right, depth + 1, res)
감사합니다.
반응형
'Algorithm > DataStructure' 카테고리의 다른 글
leetcode - Tree - Balanced Binary Tree (0) | 2020.04.06 |
---|---|
leetcode - Tree - Binary Tree Level Order Traversal II (0) | 2020.03.31 |
leetcode - Tree - Maximum Depth of Binary Tree (0) | 2020.03.24 |
leetcode - Tree - Symmetric Tree (0) | 2020.03.23 |
leetcode - Tree - Same Tree (0) | 2020.03.19 |