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..
题目让我们求二叉树的最小深度:最小深度是指从根节点到最近叶子节点的最短路径的节点个数。
思路:一颗二叉树的最小深度等于左子树的最小深度与右子树的最小深度的较小值加1,求左右子树的最小深度的做法同求这棵二叉树的最小深度做法一样,采用递归的解法。与求最大深度不同的是,当不存在左子树或者右子树的时候,这棵树的最小深度就是另外一个子树的最小深度。
class Solution {
public:
int minDepth(TreeNode* root) {
if(root==nullptr)
return 0;
if(!root->left && !root->right)
return 1;
else if(root->left && !root->right)
return minDepth(root->left)+1;
else if(!root->left && root->right)
return minDepth(root->right)+1;
else return min(minDepth(root->left),minDepth(root->right))+1;
}
};
照顾好自己的身体,控制好自己的情绪,加油!
以上就是关关关于这道题的总结经验,希望大家能够理解,有什么问题可以在我们的专知公众号平台上交流或者加我们的QQ专知-人工智能交流群 426491390,也可以加入专知——Leetcode刷题交流群(请先加微信小助手weixinhao: Rancho_Fang)。 同时请,关注我们的公众号,获取最新关于专知以及人工智能的资讯、技术、算法等内容。扫一扫下方关注我们的微信公众号。