1. 程式人生 > >二叉樹最大深度和最小深度

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

str treenode oot null 避免 結果 一個 blog clas

最大深度:

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

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