1
# Runtime: 112 ms (Top 7.97%) | Memory: 14.4 MB (Top 40.85%)3
def lcaDeepestLeaves(self, root: Optional[TreeNode]) -> Optional[TreeNode]:8
def rec(root, parent, lvl):11
if lvl > self.max_lvl[0]:12
self.max_lvl = (lvl, [root])13
elif lvl == self.max_lvl[0]:14
self.max_lvl = (lvl, self.max_lvl[1] + [root])15
self.pathes[root] = parent16
rec(root.left, root, lvl + 1)17
rec(root.right, root, lvl + 1)21
# for key in self.pathes:22
# if key!=None and self.pathes[key]!=None:23
# print(key.val,"-",self.pathes[key].val)24
if len(self.max_lvl[1]) < 2:25
return self.max_lvl[1][0]26
parent = self.max_lvl[1]27
while len(parent) > 1:30
temp.add(self.pathes.get(p, None))