zoukankan      html  css  js  c++  java
  • Go语言实现:【剑指offer】树的子结构

    该题目来源于牛客网《剑指offer》专题。

    输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)

    Go语言实现:

    type TreeNode struct {
       Val   int
       Left  *TreeNode
       Right *TreeNode
    }//b是否和a的跟结点或左子树的跟结点或右子树的跟结点一致
    func hasSubtree(a *TreeNode, b *TreeNode) bool {
       return isSubtree(a, b) || hasSubtree(a.Left, b) || hasSubtree(a.Right, b)
    }//除了跟结点,其他结点是否也一致
    func isSubtree(a *TreeNode, b *TreeNode) bool {
       if b == nil || a == nil {
          return false
       }
       if a.Val == b.Val {
          return isSubtree(a.Left, b.Left) && isSubtree(a.Right, b.Right)
       } else {
          return false
       }
    }
    
  • 相关阅读:
    ThinkPHP5.1 行为与钩子
    PHP 商品秒杀抢购业务流程
    MySQL 读写分离
    Redis 管道
    Redis 事务
    Redis 锁机制
    ThinkPHP 实现队列
    MySQL 存储引擎
    分布式唯一ID分配问题
    Lightscape
  • 原文地址:https://www.cnblogs.com/dubinyang/p/12099384.html
Copyright © 2011-2022 走看看