LeetCode 513 solution

LeetCode 513  solution

513. Find Bottom Left Tree Value

#Medium #Binary_tree

problem

Given the root of a binary tree, return the leftmost value in the last row of the tree.
Input: root = [2,1,3] Output: 1

python

# 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 findBottomLeftValue(self, root: Optional[TreeNode]) -> int:
        queue = [root]
        for node in queue:
            queue += filter(None,(node.right,node.left))
        return node.val

엄청 어려운 개념은 없다. 너비 우선 탐색(Breadth-First Search, BFS)을 통해 각 레벨마다 순회를 하되, none인 경우는 넘어가면서 오른쪽에서 왼쪽 순으로 queue에 넣어준다. 마지막 순간에 왼쪽의 node를 고르기 위해서 이러한 (node.right,node.left) 순서로 넣어주는 것이다.