# LeetCode 100: Same Tree — Step-by-Step Visual Trace

**Easy** — Binary Tree | Depth-First Search | Recursion

## The Problem

Given the roots of two binary trees p and q, determine if they are the same tree. Two binary trees are considered the same if they are structurally identical and the nodes have the same values.

## Approach

Use recursive depth-first traversal to compare both trees simultaneously. At each step, check if both nodes are null (base case), if one is null while the other isn't, or if their values differ. Recursively verify that left and right subtrees are identical.

**Time:** O(min(m,n)) · **Space:** O(min(m,n))

## Code

```python
class Solution:
    def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
        if not p and not q:
            return True
        if not p or not q or p.val != q.val:
            return False
        return self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right)
```

## Watch It Run

> **[Open interactive visualization](https://tracelit.dev/app?trace=0100_same-tree)**

> **Try it yourself:** Open [TraceLit](https://tracelit.dev/app?trace=0100_same-tree) and step through every line.

---

*Built with [TraceLit](https://tracelit.dev) — the visual algorithm tracer for LeetCode practice.*
