solution.md 2.8 KB
Newer Older
每日一练社区's avatar
每日一练社区 已提交
1
# 相同的树
F
fix bug  
feilong 已提交
2

每日一练社区's avatar
每日一练社区 已提交
3
<p>给你两棵二叉树的根节点 <code>p</code><code>q</code> ,编写一个函数来检验这两棵树是否相同。</p><p>如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。</p><p><strong>示例 1:</strong></p><img alt="" src="https://img-blog.csdnimg.cn/img_convert/f57f91797d38f7989b2840df0af56f12.png#pic_center" /><pre><strong>输入:</strong>p = [1,2,3], q = [1,2,3]<strong><br />输出:</strong>true</pre><p><strong>示例 2:</strong></p><img alt="" src="https://img-blog.csdnimg.cn/img_convert/3cd39cd15154d94a0916631a1bb0af62.png#pic_center" /><pre><strong>输入:</strong>p = [1,2], q = [1,null,2]<strong><br />输出:</strong>false</pre><p><strong>示例 3:</strong></p><img alt="" src="https://img-blog.csdnimg.cn/img_convert/ec8eb306b8b154439c9322477d9b13bf.png#pic_center" /><pre><strong>输入:</strong>p = [1,2,1], q = [1,1,2]<strong><br />输出:</strong>false</pre><p><strong>提示:</strong></p><ul>	<li>两棵树上的节点数目都在范围 <code>[0, 100]</code></li>	<li><code>-10<sup>4</sup> <= Node.val <= 10<sup>4</sup></code></li></ul>
每日一练社区's avatar
每日一练社区 已提交
4
<p>以下<span style="color:red">错误</span>的选项是?</p>
F
fix bug  
feilong 已提交
5

每日一练社区's avatar
每日一练社区 已提交
6
## aop
F
fix bug  
feilong 已提交
7

每日一练社区's avatar
每日一练社区 已提交
8
### before
F
fix bug  
feilong 已提交
9

每日一练社区's avatar
每日一练社区 已提交
10
```c
每日一练社区's avatar
每日一练社区 已提交
11 12 13 14 15 16 17 18 19 20 21 22 23 24
#include <bits/stdc++.h>
using namespace std;

struct TreeNode
{
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode() : val(0), left(nullptr), right(nullptr) {}
    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
    TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
};

```
每日一练社区's avatar
每日一练社区 已提交
25

每日一练社区's avatar
每日一练社区 已提交
26
### after
F
fix bug  
feilong 已提交
27

每日一练社区's avatar
每日一练社区 已提交
28
```c
每日一练社区's avatar
每日一练社区 已提交
29 30 31 32

```

## 答案
F
fix bug  
feilong 已提交
33

每日一练社区's avatar
每日一练社区 已提交
34
```c
每日一练社区's avatar
每日一练社区 已提交
35 36 37 38
都是错的
```
## 选项

F
fix bug  
feilong 已提交
39

每日一练社区's avatar
每日一练社区 已提交
40
### A
F
fix bug  
feilong 已提交
41

每日一练社区's avatar
每日一练社区 已提交
42
```c
每日一练社区's avatar
每日一练社区 已提交
43 44 45 46 47 48 49 50 51 52 53 54 55
class Solution
{
public:
    bool isSameTree(TreeNode *p, TreeNode *q)
    {
        if (p == nullptr)
            return q == nullptr;
        return q != nullptr && p->val == q->val && isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
    }
};
```

### B
F
fix bug  
feilong 已提交
56

每日一练社区's avatar
每日一练社区 已提交
57
```c
每日一练社区's avatar
每日一练社区 已提交
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
class Solution
{
public:
    bool isSameTree(TreeNode *p, TreeNode *q)
    {
        TreeNode *temp, *temq;
        temp = p;
        temq = q;
        bool lb, rb;
        if (!p && !q)
            return true;
        if ((!p || !q) || p->val != q->val)
            return false;
        else
        {
            lb = isSameTree(p->left, q->left);
            rb = isSameTree(p->right, q->right);
        }
        if (lb && rb)
            return true;
        else
            return false;
    }
};
```

### C
F
fix bug  
feilong 已提交
85

每日一练社区's avatar
每日一练社区 已提交
86
```c
每日一练社区's avatar
每日一练社区 已提交
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
class Solution
{
public:
    bool isSameTree(TreeNode *p, TreeNode *q)
    {
        if (p == NULL && q == NULL)
            return true;
        if (p == NULL || q == NULL)
            return false;
        if (p->val != q->val)
            return false;
        return (isSameTree(p->left, q->left) && isSameTree(p->right, q->right));
    }
};
```