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