LeetCode(559)N叉树的最大深度

队列的最后进入的元素q.back()

/*
// Definition for a Node.
class Node {
public:
    int val;
    vector<Node*> children;

    Node() {}

    Node(int _val) {
        val = _val;
    }

    Node(int _val, vector<Node*> _children) {
        val = _val;
        children = _children;
    }
};
*/

class Solution {
public:
    int maxDepth(Node* root) {
        queue<Node*>q;
        vector<Node*>v;
        int height = 0,p1 = 0,p2 = 0,level = 0;
        Node*p,*first,*last;
        if(root==nullptr)return 0;
        q.push(root);
        last = root;
        height++;
        while(!q.empty()){
            p = q.front();
            q.pop();
            first = p;
            v = p->children;
            p1++;
            for(int i=0;i<v.size();i++){
                q.push(v[i]);
            }
            if(first==last){
                level++;
                last = q.back();
            }
            p2 += v.size();
        }
        return level;
    }
};

 

posted @ 2022-05-21 14:57  智人心  阅读(28)  评论(0)    收藏  举报