package com.app.main.LeetCode.tree;
import com.app.main.LeetCode.base.TreeNode;
/**
* 100
*
* easy
*
* https://leetcode.com/problems/same-tree/
*
* Given two binary trees, write a function to check if they are the same or not.
*
* Two binary trees are considered the same if they are structurally identical and the nodes have the same value.
*
* Example 1:
*
* Input: 1 1
* / \ / \
* 2 3 2 3
*
* [1,2,3], [1,2,3]
*
* Output: true
* Example 2:
*
* Input: 1 1
* / \
* 2 2
*
* [1,2], [1,null,2]
*
* Output: false
* Example 3:
*
* Input: 1 1
* / \ / \
* 2 1 1 2
*
* [1,2,1], [1,1,2]
* * Output: false
*
* /**
* * Definition for a binary tree node.
* * public class TreeNode {
* * int val;
* * TreeNode left;
* * TreeNode right;
* * TreeNode(int x) { val = x; }
* * }
*
* Created with IDEA
* author:Dingsheng Huang
* Date:2019/10/25
* Time:下午3:51
*/
public class SameTree {
public boolean isSameTree(TreeNode p, TreeNode q) {
return process(p, q);
}
private boolean process(TreeNode root1, TreeNode root2) {
if (root1 == null && root2 == null) {
return true;
}
if (root1 == null && root2 != null || root1 != null && root2 == null || root1.val != root2.val ) {
return false;
}
if (process(root1.left, root2.left) && process(root1.right, root2.right)) {
return true;
}
return false;
}
}