020 · Same Tree

algorithm
Published

May 22, 2026

Problem

给定两棵二叉树的根节点 pq

请判断这两棵二叉树是否相同。

两棵二叉树相同,需要同时满足:

  • 它们的结构完全一样
  • 对应位置上的节点值也完全一样

也就是说,只比较节点值是不够的;如果节点的位置不同,或者一棵树有节点而另一棵树没有节点,它们都不算相同。

例如,下面两棵树是相同的:

    1          1
   / \        / \
  2   3      2   3

它们的结构一样,并且每个对应节点的值都一样。

下面两棵树不是相同的:

    1          1
   /            \
  2              2

虽然节点值都是 12,但 2 在第一棵树的左边,在第二棵树的右边,所以结构不同。

Examples

示例 1

Input:  p = [1,2,3], q = [1,2,3]
Output: true

解释:两棵树的结构相同,对应节点的值也相同。

示例 2

Input:  p = [1,2], q = [1,null,2]
Output: false

解释:两棵树都包含节点 12,但节点 2 的位置不同,所以不是相同的树。

示例 3

Input:  p = [1,2,1], q = [1,1,2]
Output: false

解释:两棵树的结构相同,但左右子节点的值不同。

Constraints

  • 两棵树中的节点数量范围都是 \([0, 100]\)
  • \(-10^4 \leq\) Node.val \(\leq 10^4\)