> For the complete documentation index, see [llms.txt](https://shuati.gitbook.io/crack-lintcode/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://shuati.gitbook.io/crack-lintcode/binary-tree/same-tree-07-27.md).

# Same Tree 07/27

Check if two binary trees are identical. Identical means the two binary trees have the same structure and every identical position has the same value.Have you met this question in a real interview?  Yes

#### Example

```
    1             1
   / \           / \
  2   2   and   2   2
 /             /
4             4
```

are identical.

```
    1             1
   / \           / \
  2   3   and   2   3
 /               \
4                 4
```

are not identical.

```java
/**
 * Definition of TreeNode:
 * public class TreeNode {
 *     public int val;
 *     public TreeNode left, right;
 *     public TreeNode(int val) {
 *         this.val = val;
 *         this.left = this.right = null;
 *     }
 * }
 */

public class Solution {
    /**
     * @param a: the root of binary tree a.
     * @param b: the root of binary tree b.
     * @return: true if they are identical, or false.
     */
    public boolean isIdentical(TreeNode a, TreeNode b) {
        // write your code here
        
        if( a == null && b == null){
            return true;
        }
        
        if(a ==null ^ b == null){
            return false;
            
        }
        
        if(a.val != b.val){
            return false;
        }
        
        boolean left = isIdentical(a.left,b.left);
        boolean right = isIdentical(a.right,b.right);
        
        return left && right;
    }
}
```
