相同的树
来源:相同的树
问题描述:
给定两个二叉树,编写一个函数来检验它们是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
问题分析:
由题可知,就是通过比较每个节点的值是否相同,即只需要遍历两个二叉树,采用深度优先算法即可。
代码实现:
public class Main {
//测试
public static void main(String[] args) {
// TODO Auto-generated method stub
TreeNode p=null;
TreeNode q=null;
System.out.println(isSameTree(p,q));
}
public static boolean isSameTree(TreeNode p, TreeNode q) {
if(p==null && q==null){
return true;
}
if(p!=null && q!=null && p.val==q.val ){
return isSameTree(p.left,q.left) && isSameTree(p.right,q.right);
}else {
return false;
}
}
}
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode() {}
TreeNode(int val) { this.val = val; }
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}