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.
利用递归的算法进行计算。
/* Definition for binary tree
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
};*/
int minDepth(struct TreeNode *root) {
if(!root) return 0;
if(!root->left && !root->right) return 1;
int leftDep=minDepth(root->left)+1;
leftDep=(leftDep==1?INT_MAX:leftDep);
int rightDep=minDepth(root->right)+1;
rightDep=(rightDep==1?INT_MAX:rightDep);
return leftDep<=rightDep?leftDep:rightDep;
}
注意:C语言没有最大最小函数,需要自己进行判断~~看最后一行
最大深度
/**
* Definition for binary tree
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
int maxDepth(TreeNode *root) {
if(!root) return 0;
int leftDepth = maxDepth(root -> left) + 1;
int rightDepth = maxDepth(root -> right) + 1;
return max(leftDepth, rightDepth);
}
};
本文介绍了一种使用递归算法来寻找二叉树最小深度的方法,并提供了详细的C语言实现代码。最小深度定义为从根节点到最近叶子节点的最短路径上的节点数量。
607

被折叠的 条评论
为什么被折叠?



