题目大意:
很简单,只需要找出一颗二叉树的最大深度即可,貌似没有时间和空间的要求。
求解方法:
更简单,只需要按照宽度优先的方法去查找即可,,在这里我用a队列保存待扩展的节点,用b来保存a扩展出来的节点,再利用t中间变量来交换a和b,直到a列队为空时,结束。 注意边界条件,root=NULL时,应该返回0.
;//Definition for a binary tree node.struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};class Solution {public:int maxDepth(TreeNode* root){int deep=0;queue<TreeNode*> a;queue<TreeNode*> b;queue<TreeNode*> t;if (root!=NULL)deep=deep+1;elsereturn deep;a.push(root);while(!a.empty()){(!a.empty()){TreeNode* node=a.front();if(node->left!=NULL)b.push(node->left);if(node->right!=NULL)b.push(node->right);a.pop();}t=a;a=b;b=t;if(!a.empty())deep=deep+1;}return deep;}};int main(){cout << “只要将头文件和solution类拷贝进去即可。!” << endl;;}
若不给自己设限,则人生中就没有限制你发挥的藩篱。