数据结构和算法分析算法提高之LeetCode刷题

N叉树的最大深度

2020-03-05  本文已影响0人  _阿南_

题目:

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

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

例如,给定一个 3叉树 :
题目
我们应返回其最大深度,3。

说明:

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

题目的理解:

链表中的每一个节点的children是一个数组,保存着多个节点。将同一级的节点保存到一个数组中,然后判断循环次数就是深度。

python实现

"""
# 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 root is None:
            return 0

        node_list = list()
        node_list.append(root)
        deep = 1

        while len(node_list) > 0:
            temp_list = list()
            for node in node_list:
                if node.children is not None:
                    temp_list += node.children
                    
            node_list = temp_list
            
            if len(node_list) > 0:
                deep += 1
                
        return deep

提交

ok

// END 你也不要错过我的美丽,今夜的你会在哪里。

上一篇下一篇

猜你喜欢

热点阅读