题目要求如下:
Given two binary trees, write a function to check if they are equal or not.
Two binary trees are considered equal if they are structurally identical and the nodes have the same value.
接着递归。。/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public boolean isSameTree(TreeNode p, TreeNode q) {
if(p==null&&q==null){
return true;
}
if(p==null&&q!=null||q==null&&p!=null||p.val!=q.val){
return false;
}
return isSameTree(p.left,q.left)&&isSameTree(p.right,q.right);
}
}
思路是依次比较两棵树上左子树的各个节点的值时候相同,然后再比较右子树。对于二叉树的遍历中的递归思想,可以参见我之前写的两篇文章。
《一段代码让你理解二叉树的递归奥秘》和
《二叉树的递归遍历以及最大深度的求解(Java)》