LeetCode/111. Minimum Depth of Binary Tree.md
2018-11-03 11:16:47 +08:00

22 lines
955 B
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# [111. Minimum Depth of Binary Tree](https://leetcode.com/problems/minimum-depth-of-binary-tree/description/)
# 思路
求二叉树的最小深度。依次分为以下情况:
* 若为空树则返回0
* 否则若左右子树都为空返回1
* 否则若左子树为空那么最小深度就为右子树的最小深度加1若右子树为空那么最小深度就为左子树的最小深度加1
* 否则(即左右子树都不空)那么最小深度就是min(1+左子树最小深度, 1+右子树最小深度)
# C++
``` C++
class Solution {
public:
int minDepth(TreeNode* root) {
if(root == NULL) return 0;
else if(root -> left == NULL && root -> right == NULL) return 1;
else if(root -> left == NULL) return 1 + minDepth(root -> right);
else if(root -> right == NULL) return 1 + minDepth(root -> left);
return 1 + min(minDepth(root -> left), minDepth(root -> right));
}
};
```