问题
输入两棵二叉树A
,B
,判断B
是不是A
的子结构。(ps:约定空树不是任意一个树的子结构)。
理解
想要判断B
是不是A
的子结构,我们需要去依次遍历比较双方的结点value。这边采用的是递归的思想来解决该问题。
首先将A
的根节点与B
的根节点比较,
- 若不相等,则继续扫描
A
的左右子树,A
的左子树,与B
的根节点比较,- 若该子树的根节点与
B
的根节点相等,则继续遍历该子树的左右子树与B
的左右子树是否相等 - 若不相等,则继续扫描
A
的子树结点,直到所有结点扫描结束
- 若该子树的根节点与
A
的右子树,与B
的根节点比较,- 若该子树的根节点与
B
根节点相等,则继续遍历双方的左右子树,判断是否相等 - 若不相等,继续扫描子树
- 若该子树的根节点与
- 若相等,则双方各自分别往其左右子树方向走;判断左右子树结点是否相等
代码
|
|