[LeetCode] 100. Same Tree

判断相同树。题意是给两个树,判断他们是否相同。有两种思路,bfs和dfs。bfs是按层遍历tree,将每层的node塞进queue然后弹出比较,需要注意塞进queue的顺序。此处我只实现了dfs的做法。

Example 1:

Input:     1         1
          / \       / \
         2   3     2   3

        [1,2,3],   [1,2,3]

Output: true

Example 2:

Input:     1         1
          /           \
         2             2

        [1,2],     [1,null,2]

Output: false

Example 3:

Input:     1         1
          / \       / \
         2   1     1   2

        [1,2,1],   [1,1,2]

Output: false

时间O(n)

空间O(n)

 1 /**
 2  * @param {TreeNode} p
 3  * @param {TreeNode} q
 4  * @return {boolean}
 5  */
 6 const isSameTree = function(p, q) {
 7     // corner case
 8     if (p == null && q == null) return true;
 9     if (p == null || q == null) return false;
10 
11     // normal case
12     if (p.val == q.val) {
13         return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
14     }
15     return false;
16 };

你可能感兴趣的:([LeetCode] 100. Same Tree)