问题陈述: 给定两个二叉树 p 和 q 的根,编写一个函数来检查它们是否相同。
我尝试在 leetcode(问题 100)上提交以下代码:
bool isSameTree(TreeNode* p, TreeNode* q) {
if(!p && !q) return true;
if(p && q && p->val==q->val) {
bool l = isSameTree(p->left, q->left);
bool r = isSameTree(p->right, q->right);
return l&&r;
}
return false;
}
这需要 0 毫秒。
bool isSameTree(TreeNode* p, TreeNode* q) {
if(!p && !q) return true;
if(p && q && p->val==q->val) {
return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
}
return false;
}
这需要 4 毫秒。
有人可以解释为什么吗?
我想知道为什么会有巨大的运行时间差异?