題目
思路
題目不難珊佣,判斷兩個(gè)二叉樹是否相等,只需要判斷三個(gè)條件:
- 兩個(gè)根結(jié)點(diǎn)的val相等
- 兩個(gè)左結(jié)點(diǎn)相等
- 兩個(gè)右結(jié)點(diǎn)相等
而題目所給的函數(shù)isSameTree()的作用就是判斷兩個(gè)結(jié)點(diǎn)是否相等裂垦,所以自然而然的想到了用遞歸來(lái)判斷這兩個(gè)樹的左右結(jié)點(diǎn)是否相同。
代碼如下
public class Main {
public static void main(String[] args) {
TreeNode t1 = new TreeNode(1);
t1.left = new TreeNode(2);
// t1.right = new TreeNode(2);
TreeNode t2 = new TreeNode(1);
t2.left = new TreeNode(2);
// t2.right = new TreeNode(2);
System.out.println(new Main().isSameTree(t1, t2));
}
public boolean isSameTree(TreeNode p, TreeNode q) {
if (p == null && q == null) return true;
else {
if (p == null || q == null) {
return false;
}
return (p.val == q.val && isSameTree(p.left, q.left) && isSameTree(p.right, q.right));
}
}
}