我寫一個函數返回二叉樹的最大深度。時間比較:運營商
class Solution {
public:
int maxDepth(TreeNode* root) {
if(root == 0) return 0;
if((root -> left ==0) &&(root->right == 0)) return 1;
**************
}
};
我寫爲*****部分 方法一兩種方法:
else return max((1+maxDepth(root -> left)),(1+maxDepth(root -> right)));
方法2:
else return (maxDepth(root -> left) > maxDepth(root -> right)) ?
(maxDepth(root->left) + 1):
(maxDepth(root->right) + 1);
第二種方法失敗而第一個經過定時檢查。 他們看起來很像我。 任何人都可以提供一些提示,爲什麼第二種方法更慢?
那麼,這些完全不相似。你在第一個例子中調用'maxDepth'兩次,在第二個例子中調用_three_ ... – Obicere
@Obicere三次。 – pvg
@pvg,對不起,這是正確的。儘管如此,它對於他在這裏看到的時差還是足夠重要的。 – Obicere