二叉樹最大深度和最小深度


最大深度:

   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;    //返回二者之中較小數
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM