题目
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) {
return minDepth(root, false);
}
int minDepth(TreeNode* root, bool hasbrother) {
if(root == NULL)
return hasbrother ? 0x7FFFFFFF : 0;
int left = minDepth(root->left, root->right != NULL);
int right = minDepth(root->right, root->left != NULL);
return 1 + (left < right ? left : right);
}
};