手机网站头部,海南最新消息今天,如何给自己公司做一个网站,互联网域名是什么思路#xff1a;用递归的方法求解。 输入#xff1a;二叉树的根节点#xff1b; 输出#xff1a;二叉树的最小深度。 最小深度的定义#xff1a;从根节点到叶子节点的最短路径上的节点数。 算法如下#xff1a; 将二叉树分为这么几种情况#xff1a; 传入的根节点为空用递归的方法求解。 输入二叉树的根节点 输出二叉树的最小深度。 最小深度的定义从根节点到叶子节点的最短路径上的节点数。 算法如下 将二叉树分为这么几种情况 传入的根节点为空返回NULL传入根节点不为空左子树为空右子树为空返回最小深度1传入根节点不为空左子树为空右子树不为空返回右子树的最小深度1传入根节点不为空左子树不为空右子树为空返回左子树的最小深度1传入根节点不为空左右子树都不为空则返回左右子树中最小深度的较小值1.代码如下 /*** 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 minDepth(TreeNode *root) {if(root NULL ) return NULL;if(root-leftNULL root-right NULL) return 1;else if(root-left NULL root-right !NULL) return minDepth(root-right)1;else if(root-left !NULL root-right NULL) return minDepth(root-left)1;else if(root-left !NULL root-right ! NULL) return minDepth(root-left)minDepth(root-right)?(minDepth(root-left)1):(minDepth(root-right)1);}
}; 转载于:https://www.cnblogs.com/hubavyn/p/3870268.html