public boolean isSameTree(TreeNode p, TreeNode q) {
if(p == null && q == null){
return true;
}
if(p == null || q == null){
return false;
}
else if(p.val != q.val){
return false;
}
else{
return isSameTree(p.left, q.left)
&& isSameTree(p.right, q.right);
}
}
public boolean isSameTree2(TreeNode p, TreeNode q){
Queue<TreeNode> nodes = new LinkedList<>();
nodes.add(p);
nodes.add(q);
while(!nodes.isEmpty()){
TreeNode node1 = nodes.remove();
TreeNode node2 = nodes.remove();
if(node1 == null && node2 == null){
continue;
}
if(node1 == null || node2 == null){
return false;
}
if(node1.val != node2.val){
return false;
}
nodes.add(node1.left);
nodes.add(node2.left);
nodes.add(node1.right);
nodes.add(node2.right);
}
return true;
}