打卡,简单题之100题
/**
* 给定两个二叉树,编写一个函数来检验它们是否相同。
* 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
*/
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
public class SameTree {
public static void main(String[] args) {
TreeNode p = new TreeNode(1);
p.left = new TreeNode(2);
p.right = new TreeNode(1);
TreeNode q = new TreeNode(1);
q.left = new TreeNode(1);
q.right = new TreeNode(2);
System.out.println(isSameTree(p,q));
}
static boolean flag=true;
public static boolean isSameTree(TreeNode p, TreeNode q) {
if ((p!=null&&q==null)||(p==null&&q!=null)){
flag = false;
}
if (p!=null&&q!=null) {
isSameTree(p.left, q.left); //这种遍历方式是二叉树的中根遍历
if (p.val != q.val) {
flag = false;
}
isSameTree(p.right, q.right);
}
return flag;
}
}