Problem:
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.
Use recursive method.
if the value of these two nodes are not the same, return false. Otherwise, check if the left subtree of them are the same and if the right subtree of them are the same (Bothe these two condition must be satisfied).
Code
/**
* 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) {
if (p == null && q == null) return true;
else return false;
}
if (p.val != q.val) return false;
else return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
}
}