日野弥生:勉強しよう

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)

フラッシュタブ:LeetCode

题目链接:https://leetcode.cn/problems/maximum-depth-of-n-ary-tree/

上一篇

LeetCode 429 - N 叉树的层序遍历

下一篇

LeetCode 217 - 存在重复元素