from collections import deque
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param root TreeNode类 
# @return int整型
#

class Solution:
    
        def findMaxHeight(self , root: TreeNode) -> int:
        # write code here
            if not root: return [] #如果树为空,返回一个空的list
            q = deque([root]) #定义一个先进先出的队列,这样可以把上一层的先提取出来
            res=[]
            while q:
                cur = [] #处理完一层的数据后需要清零,继续处理下一层
                for _ in range(len(q)): #这里每次读完q后,后面的操作不影响这里,循环结束后才变len(q)
                    node = q.popleft()
                    cur.append(node.val)
                    if node.left:
                        q.append(node.left)
                    if node.right:
                        q.append(node.right)
                res.append(cur)
            print(res[-1])
            return max(res[-1])