给你两棵二叉树的根节点 p
和 q
,编写一个函数来检验这两棵树是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
思路:前序遍历,利用递归比较每个节点是否相等。
public static boolean isSameTree(TreeNode p, TreeNode q){return compare(p,q);}public static boolean compare(TreeNode p,TreeNode q){//先判断为空的情况if(p==null && q!=null){return false;}else if(p!=null && q==null){return false;}else if(p==null && q==null){return true;}else if(p.val!=q.val){ //不为空的情况return false;}boolean l=compare(p.left,q.left);boolean r=compare(p.right,q.right);return l&&r;}