二叉树最大深度和最小深度
最大深度:
int maxDepth(TreeNode *root) { if(root == NULL) return 0; if(root->left == NULL && root->right == NULL) return 1; int left = maxDepth(root->left) + 1; int right = maxDepth(root->right) + 1; return left>right ? left : right; //返回二者之中较大数 }
最小深度:
int minDepth(TreeNode * root) { if(root == NULL) return 0; if(root->left == NULL && root->right == NULL) return 1; int left = minDepth(root->left) + 1; int right = minDepth(root->right) + 1; if(left == 1) //等于1说明没有左子树有右子树,为避免干扰结果,另其为一个最大数 left = INT_MAX; if(right == 1) //等于1说明没有右子树有左子树,为避免干扰结果,另其为一个最大数 right = INT_MAX; return left > right ? right : left; //返回二者之中较小数 }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步