日野弥生:勉強しよう
LeetCode 559 - N 叉树的最大深度
发表于2025年03月30日
本题和二叉树的最大深度思路一致,有自顶向下传递深度和自底向上传递深度的两种思路。
自顶向下
class Solution:
def maxDepth(self, root: 'Node') -> int:
if not root:
return 0
maxDep = 0
def maxDepthImpl(root: 'Node', depth: int):
nonlocal maxDep
if not root:
return
if not root.children:
maxDep = max(maxDep, depth)
for ch in root.children:
maxDepthImpl(ch, depth + 1)
maxDepthImpl(root, 1)
return maxDep
自底向上
class Solution:
def maxDepth(self, root: 'Node') -> int:
if not root:
return 0
def maxDepthImpl(root: 'Node'):
if not root:
return 0
if not root.children:
return 1
maxD = 0
for ch in root.children:
maxD = max(maxD, maxDepthImpl(ch))
return maxD + 1
return maxDepthImpl(root)