572.另一棵树的子树
题目
给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31示例 1:
给定的树 s:
3
/ \
4 5
/ \
1 2
给定的树 t:
4
/ \
1 2
返回 true,因为 t 与 s 的一个子树拥有相同的结构和节点值。
示例 2:
给定的树 s:
3
/ \
4 5
/ \
1 2
/
0
给定的树 t:
4
/ \
1 2
返回 false。
方法
方法1:对比字符
找到tree s 和tree t 的先序遍历$s_preorder$和$t_preoder$(用字符串表示)。再检查$t_preorder$是否时$s_preorder$的字串
并且再每个可能考虑的值之前添加’#’,避免出现混淆
s:[23, 4, 5] and t:[3, 4, 5]
t(“23 4 lnull rull 5 lnull rnull”)
s(“3 4 lnull rull 5 lnull rnull”)
1 | # Definition for a binary tree node. |
方法2:对比结点
1 | # Definition for a binary tree node. |
1 | # Definition for a binary tree node. |
1 | # Definition for a binary tree node. |