leetcode572. 另一个树的子树

kmp思路

我实在没想到这个用kmp,如果正常做的话应该是ac自动机的思路,废话不多,写下我的思路,主要供我自己记忆参考的,要搞懂题建议看下官方题解,三种方法

  • 首先kmp是单匹配模式,而且一般用在字符串匹配上,所以先要把树形结构转化一下,我们都知道树有三种遍历顺序,先序,中序和后序,这题用哪一种都没关系,只要两个树的遍历顺序一样就可以了,但是光这样是不行的,例如一个根节点值为3,它只有左节点值为1,另一个模式树的根节点为3,他只有右节点为1,这样的话对于中序遍历来说就会错误,其他两种遍历顺序各有各的不对的情况,所以这题在遍历的时候,要在叶节点的左右节点加一个lNULL和rNULL数,表示树结束了,这样就可以避免以上情况,究其原因就是这样做吧树的结构给确定了。
  • 之后就是kmp,只要匹配到就成功了

官方题解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值