100. Same Tree
1 2 3 4 5 6 7 8
| Given the roots of two binary trees p and q, 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:
|

1 2 3 4 5
| Input: p = [1,2,3], q = [1,2,3] Output: true Example 2:
|

1 2 3 4
| Input: p = [1,2], q = [1,null,2] Output: false Example 3:
|

1 2 3 4 5 6 7 8 9
| Input: p = [1,2,1], q = [1,1,2] Output: false
Constraints:
The number of nodes in both trees is in the range [0, 100]. -104 <= Node.val <= 104
|
Solution
DFS + Recursive
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if (p == null && q == null) { return true; } else if (p == null || q == null || p.val != q.val) { return false; }
return isSameTree(p.left, q.left) && isSameTree(p.right, q.right); } }
|