題型解說
這是一題難度為簡單的題目
需要設計一個方法,此方法會傳入兩個二元樹 p 和 q
回傳這兩棵樹是不是完全一樣
解題思路
這題看是要寫個遞迴還是使用 Stack 搭配迴圈都可以
沒有什麼困難點,就是左邊跟左邊比,右邊跟右邊比,中間跟中間比
其中一個沒比對上就回傳 false
程式碼
Java
class Solution {
public boolean isSameTree(TreeNode p, TreeNode q) {
if (p == null && q == null) {
return true;
} else if (p == null || q == null || p.val != q.val) {
return false;
}
return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
}
}
class Solution {
public boolean isSameTree(TreeNode p, TreeNode q) {
Stack stack = new Stack();
stack.push(p);
stack.push(q);
TreeNode temp1;
TreeNode temp2;
while (!stack.empty()) {
temp1 = (TreeNode)stack.pop();
temp2 = (TreeNode)stack.pop();
if (temp1 == null && temp2 == null) {
continue;
} else if (temp1 == null || temp2 == null || temp1.val != temp2.val) {
return false;
}
stack.push(temp1.left);
stack.push(temp2.left);
stack.push(temp1.right);
stack.push(temp2.right);
}
return true;
}
}