題目:
給定兩個二叉樹,編寫一個函數來檢驗它們是否相同。
如果兩個樹在結構上相同,並且節點具有相同的值,則認爲它們是相同的。
代碼:
class Solution {
public boolean isSameTree(TreeNode p, TreeNode q) {
//一棵爲空,一棵不爲空,兩棵皆不爲空但是根節點的值不相同,則兩棵樹一定不相同
if(p == null && q != null
|| p != null && q == null
|| p != null && q != null && p.val != q.val) {
return false;
}
if(p == q) {//兩顆空樹,視爲相同
return true;
}
//遞歸判斷左右子樹
return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
}
}