leetcode

Leetcode Solutions (0x6A73)
git clone https://git.pngu.org/leetcode
Log | Files | Refs | Submodules | README

find_largest_value_tree_row.py (785B)


# 515. Find Largest Value in Each Tree Row
import leetcode

"""
given the 'root' of a binary tree, return an array of the largest value in
each row of the tree (0-indexed).
"""


class Solution(object):
    def largestValues(self, root):
        """
        :type root: Optional[TreeNode]
        :rtype: List[int]
        """
        ans, row = [], [root]
        while any(row):
            ans.append(max(node.val for node in row))
            row = [child for node in row for child in (node.left, node.right) if child]
        return ans


if __name__ == "__main__":
    obj = Solution()
    r1i = [1, 3, 2, 5, 3, None, 9]
    r2i = [1, 2, 3]
    r1 = leetcode.list_to_tree(r1i)
    r2 = leetcode.list_to_tree(r2i)
    print(obj.largestValues(r1))
    print(obj.largestValues(r2))