数据结构——二叉树的深度

    xiaoxiao2025-03-04  41

    一、二叉树的最大深度

    int maxDepth(TreeNode *root) { if(root == NULL) return 0; int left = maxDepth(root->left) int right = maxDepth(root->right) return left>right ? (left+1 ): (right+1); //返回二者之中较大数

     

    二、二叉树的最小深度

    int minDepth(TreeNode * root) { if(root == nullptr) return 0; if(root->left == nullptr) // 若左子树为空,则返回右子树的最小深度+1 { return run(root->right)+1; } if(root->right == nullptr) // 若右子树为空,则返回左子树的最小深度+1 { return run(root->left)+1; } // 左右子树都不为空时,取较小值 int leftDepth = run(root->left); int rightDepth = run(root->right); return (leftDepth<rightDepth)?(leftDepth+1):(rightDepth+1); }

     

    最新回复(0)