标签:common else target sel desc ble etc def pes
Description:
Given a rooted binary tree, return the lowest common ancestor of its deepest leaves.
Recall that:
d
, the depth of each of its children is d+1
.S
of nodes is the node A
with the largest depth such that every node in S is in the subtree with root A
.Solution:
class Solution: def lcaDeepestLeaves(self, root: TreeNode) -> TreeNode: def helper(node): if not node: return [node, 0] if not node.left and not node.right: return [node, 0] if not node.right: left_node, left_dep = helper(node.left) return [left_node, left_dep + 1] if not node.left: right_node, right_dep = helper(node.right) return [right_node, right_dep + 1] left_node, left_dep = helper(node.left) right_node, right_dep = helper(node.right) if left_dep > right_dep: return [left_node, left_dep + 1] elif left_dep < right_dep: return [right_node, right_dep + 1] else: return [node, left_dep + 1] return helper(root)[0]
Notes:
DFS
recursion
1123. Lowest Common Ancestor of Deepest Leaves
标签:common else target sel desc ble etc def pes
原文地址:https://www.cnblogs.com/beatets/p/12170587.html