zoukankan      html  css  js  c++  java
  • 559. N叉树的最大深度

    给定一个 N 叉树,找到其最大深度。

    最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。

    例如,给定一个 3叉树 :

     

    我们应返回其最大深度,3。

    说明:

    树的深度不会超过 1000。
    树的节点总不会超过 5000。

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/maximum-depth-of-n-ary-tree

    bfs

    """
    # Definition for a Node.
    class Node:
        def __init__(self, val=None, children=None):
            self.val = val
            self.children = children
    """
    
    class Solution:
        def maxDepth(self, root: 'Node') -> int:
            if not root: return 0
            q = [root, None]
            d = 0
            
            while q:
                node = q.pop(0)
                if not node:
                    d += 1
                    if q: q.append(None)
                    continue
                    
                if node and node.children:
                    for child in node.children:
                        q.append(child)
    
            return d
    """
    # Definition for a Node.
    class Node:
        def __init__(self, val=None, children=None):
            self.val = val
            self.children = children
    """
    
    class Solution:
        def maxDepth(self, root: 'Node') -> int:
            if not root:return 0
            if not root.children:return 1
            return max(self.maxDepth(child)+1 for child in root.children)
            
  • 相关阅读:
    winform 计算器
    ajax无刷新上传图片
    Dapper的基本使用
    补充1
    Ajax2
    Ajax1
    jQuery2
    Select查询语句2
    jQuery1
    分页与组合查询
  • 原文地址:https://www.cnblogs.com/xxxsans/p/13795457.html
Copyright © 2011-2022 走看看