
出處: https://leetcode.com/problems/same-tree/
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:

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

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

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
/** * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefined ? null : right) * } */ /** * @param {TreeNode} p * @param {TreeNode} q * @return {boolean} */ var isSameTree = function(p, q) { if (p === null && q === null) return true return p?.val === q?.val && isSameTree(p.left, q.left) && isSameTree(p.right, q.right) };
做了一些 Linked List 遞迴的題目後,這題算是十分容易。就是將左邊右邊的 node,各自帶入,然後回到最上層。
概念類似之前做過的題目:解題 34. Maximum Depth of Binary Tree