/* // Definition for a Node. class Node { public: int val; vector<Node*> children; Node() {} Node(int _val, vector<Node*> _children) { val = _val; children = _children; } }; */
classSolution { public: intmaxDepth(Node* root){ if(!root) return0; int maxDep = 0; queue<Node*> q; q.push(root); //队列中始终保持存储的节点都为同一层。 while(!q.empty()){ int n = q.size(); //当前层有结点。 maxDep++; //将当前层所有元素pop掉。 for(int i = 0; i < n ;i++){ Node* t = q.front(); q.pop(); //将子节点push进队列。 for(int j = 0; j < t->children.size(); j++){ q.push(t->children[j]); } } } return maxDep; } };