首页 > 代码库 > Maximum Depth of Binary Tree

Maximum Depth of Binary Tree

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.

思路:对输入二叉树进行遍历即可。深度优先遍历:

1 class Solution {2 public:3     int maxDepth( TreeNode *root ) {4         if( !root ) { return 0; }5         return max( maxDepth(root->left), maxDepth(root->right) ) + 1;6     }7 };

广度优先遍历:

 1 class Solution { 2 public: 3     int maxDepth( TreeNode *root ) { 4         if( !root ) { return 0; } 5         vector<TreeNode*> nodes( 1, root ); 6         int depth = 0; 7         while( !nodes.empty() ) { 8             vector<TreeNode*> new_nodes; 9             for( auto iter = nodes.begin(); iter != nodes.end(); ++iter ) {10                 if( (*iter)->left ) { new_nodes.push_back( (*iter)->left ); }11                 if( (*iter)->right ) { new_nodes.push_back( (*iter)->right ); }12             }13             nodes = new_nodes;14             ++depth;15         }16         return depth;17     }18 };