简单题目,思路就是一边便利一边对比,若遇到不同则跳出。以下是代码。
方法:时间复杂度O(min(m,n));
var isSameTree = function(p, q) {
var res = true;
var result = function(p, q) {
// 先序便利对比
if (!q && !p) return;
// if ((!q || !p) || q.val !== p.val) {
if (!((q && q.val) === (p && p.val))) {
res = false;
return;
}
result(q.left, p.left);
result(q.right, p.right);
}
result(p, q);
return res;
};
优化一下:
var isSameTree = function(p, q) {
var res = true;
var result = function(p, q) {
if (!res) return;
// 先序便利对比
if (!q && !p) return;
// if ((!q || !p) || q.val !== p.val) {
if (!((q && q.val) === (p && p.val))) {
res = false;
return;
}
result(q.left, p.left);
result(q.right, p.right);
}
result(p, q);
return res;
};