您的位置:首页 > 其它

Maximum Depth of Binary Tree leetcode

2014-08-13 09:06 78 查看
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.

Anwser 1 :  DFS

class Solution {
public:
int maxDepth(TreeNode *root) {
if(root == NULL)
return 0;
int left = maxDepth(root->left);
int right = maxDepth(root->right);
return (left>right? left: right)+1;
}
};

Anwser 2 :    BFS   in  queue

class Solution {
public:
int maxDepth(TreeNode *root) {
if(root == NULL)
return 0;
queue<TreeNode*> q;
q.push(root);
int count = 1;
int depth = 0;
while(!q.empty()) {
TreeNode* tmp = q.front();
q.pop();
count--;
if(tmp->left != NULL)
q.push(tmp->left);
if(tmp->right != NULL)
q.push(tmp->right);
if(count == 0) {
depth++;
count = q.size();
}
}
return depth;
}
};

Minimum Depth of Binary Tree

Given a binary tree, find its minimum depth.

The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.
递归:
class Solution {
public:
int minDepth(TreeNode *root) {
if(root == NULL)
return 0;
int left = minDepth(root->left);
int right = minDepth(root->right);
if(left*right != 0)
return (left<right? left:right)+1;
if(left == 0)
return right+1;
if(right == 0)
return left+1;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息