Given a binary 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.
广度优先遍历,使用NULL标记每层的结尾。
Program Runtime: 40 milli secs
1 /** 2 * Definition for binary tree 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 * }; 9 */ 10 class Solution { 11 public: 12 int maxDepth(TreeNode *root) { 13 // Start typing your C/C++ solution below 14 // DO NOT write int main() function 15 int rtn = 0; 16 queue<TreeNode*> q; 17 if(NULL != root){ 18 q.push(root); 19 q.push(NULL); 20 } 21 while(q.size()){ 22 TreeNode *cur = q.front(); 23 q.pop(); 24 if(NULL == cur){ 25 rtn++; 26 if(q.size()){ 27 q.push(NULL); 28 } 29 }else{ 30 if(cur->left) q.push(cur->left); 31 if(cur->right) q.push(cur->right); 32 } 33 } 34 return rtn; 35 } 36 };