zoukankan      html  css  js  c++  java
  • [LeetCode] 559. Maximum Depth of N-ary Tree

    Easy

    Given a n-ary tree, find its maximum depth.

    The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

    For example, given a 3-ary tree:

    We should return its max depth, which is 3.

    Note:

    1. The depth of the tree is at most 1000.
    2. The total number of nodes is at most 5000.

    题目大意:求出n叉树的深度。

    方法:遍历n叉树,找到最大高度。

    方法一:递归遍历

    代码如下:

    class Solution {
    public:
        int maxDepth(Node* root) {
            if(!root)return 0;
            int res=1;
            if(!root->children.empty()){
                int temp=0;
                for(auto child:root->children){
                    temp=max(temp,maxDepth(child));
                }
                res+=temp;
            }
            return res;
        }
    };

    方法二:迭代法,使用队列queue,每次都将一整层的节点遍历一次,将他们的子节点放入队列中,同时层数+1.

    代码如下:

    class Solution {
    public:
        int maxDepth(Node* root) {
            if(!root)return 0;
            int res=0;
            queue<Node*> q{{root}};
            while(!q.empty()){
                for(int i=q.size();i>0;--i){
                    Node* temp=q.front();
                    q.pop();
                    if(!temp->children.empty()){
                        for(auto child:temp->children){
                            q.push(child);
                        }
                    }
                }
                ++res;
            }
            return res;
        }
    };
  • 相关阅读:
    maven学习(一)
    maven插件开发(二)
    Maven 插件开发(一)
    vue前后端交互
    vue 操作
    公共事件处理函数js库
    javascript 代码可读性
    你真的已经搞懂JavaScript了吗?
    js中常常容易忘记的基本概念
    面试的时候应该想的问题
  • 原文地址:https://www.cnblogs.com/cff2121/p/11590437.html
Copyright © 2011-2022 走看看