示例1给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
输入:p = [1,2,3], q = [1,2,3] 输出:true示例2
输入:p = [1,2], q = [1,null,2] 输出:false示例3
输入:p = [1,2,1], q = [1,1,2] 输出:false要求
两棵树上的节点数目都在范围 [0, 100] 内 -104 <= Node.val <= 104代码Java
中序遍历的递归实现在上一条博客
public boolean isSameTree(TreeNode p, TreeNode q) {
Stack stack1 = new Stack();
Stack stack2 = new Stack();
if (p == null && q == null)
return true;
while (p !=null || q !=null || !stack1.empty() || !stack2.empty()) {
if (p == null && q != null)
return false;
if (p != null && q == null)
return false;
if (p != null && q != null)
if (p.val != q.val)
return false;
if (p != null) {
stack1.push(p);
p = p.left;
} else if (p == null) {
p = stack1.pop();
p = p.right;
}
if (q != null) {
stack2.push(q);
q = q.left;
} else if (q == null) {
q = stack2.pop();
q = q.right;
}
}
return true;
}



