[剑指offer小分队]没错,我们坚持10天了
1 题目描述
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
2 思路----java版本
- 首先设置标志位result,如果结果为false则匹配不成功,如果为true则匹配
- 采用递归的思想,如果根节点不相同则比较判断tree1左子树和tree2是否相同。如果根系欸但相同则递归调用DoesTree1HaveTree2()
- 这里需要注意null的情况,再HasSubTree中,如果两棵树此时都不为空才进行判断。在DoesTree1HaveTree2中,如果Tree2为空则表明第二棵树遍历完了,匹配成功。对于tree1而言则分为两种情况
- 第一种情况是tree1为空,tree2不为空,此时说明不匹配。
- 第二种情况是tree1为空,tree2为空,说明匹配
3 代码实现
c++版本
java版本
python版本
4 唠嗑
#学习路径#2020年7月6日打卡,打卡格式"打卡XX天"。暖蓝汇聚大家一起,探讨简历修改,面试经历分享,尽全力让大家能在2020找到理想的工作。如果你想加入,加我拉你进面试交流群。