给定一个二叉树,找出其最小深度。
最小深度是从根节点到最近叶子节点的最短路径上的节点数量。
说明:叶子节点是指没有子节点的节点。
思路一:递归
int minDepth(struct TreeNode* root){if(!root)return 0;int left=minDepth(root->left),right=minDepth(root->right);return (left && right) ? 1+fmin(left,right):1+left+right;
}
分析:
本题与求二叉树最大深度的题很像,先判断根节点,再递归看左右子树最小值返回最小深度,由于根节点若在的话至少有一个节点所有最小深度+1
总结:
本题考察二叉树计算深度,利用递归可以解决