Same Tree
Determine if two binary trees are identical (same structure and values).
Example 1
Input: p=[1,2,3], q=[1,2,3] → Output: true
Example 2
Input: p=[1,2], q=[1,null,2] → Output: false
Solution Approach
Recursive DFS: compare root values, then recursively check left and right subtrees.
- If both null return true
- If one null or values differ return false
- Recursively check left and right subtrees
Java
public boolean isSameTree(TreeNode p, TreeNode q) {
if (p == null && q == null) return true;
if (p == null || q == null || p.val != q.val) return false;
return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
}
- Time Complexity: O(n)
- Space Complexity: O(h)