[LintCode] 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.
Example
Given a binary tree as follow:
1
/ \
2 3
/ \
4 5
The maximum depth is 3
.
LeetCode上的原题,请参见我之前的博客Maximum Depth of Binary Tree。
解法一:
class Solution { public: /** * @param root: The root of binary tree. * @return: An integer */ int maxDepth(TreeNode *root) { if (!root) return 0; return 1 + max(maxDepth(root->left), maxDepth(root->right)); } };
解法二:
class Solution { public: /** * @param root: The root of binary tree. * @return: An integer */ int maxDepth(TreeNode *root) { if (!root) return 0; int res = 0; queue<TreeNode*> q; q.push(root); while(!q.empty()) { ++res; int n = q.size(); for (int i = 0; i < n; ++i) { TreeNode *t = q.front(); q.pop(); if (t->left) q.push(t->left); if (t->right) q.push(t->right); } } return res; } };