题目描述

给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。

示例 1:
给定的树 s:

 3
/ \

4 5
/ \
1 2
给定的树 t:

4
/ \
1 2
返回 true,因为 t 与 s 的一个子树拥有相同的结构和节点值。

解题思路

双层递归
1、对节点、左节点、右节点 都对t进行递归,只要有一个成立即成功 ||
2、对两树的对比进行递归,root节点进行对比 空、值对比,然后再进行左右递归,所有节点都相同,且数量相同才能返回true, &&

语言积累和技巧

想通了就很简单,分别进行处理
在处理根节点和左右节点关系的时候,要考虑清楚,用||和&&来处理,代码简洁明了

代码链接

https://github.com/lunaDolphi...
https://github.com/lunaDolphi...


blueDolphin
12 声望1 粉丝