• leetcode-572


    重开每日一题

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

    示例 1:
    给定的树 s:

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

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

    示例 2:
    给定的树 s:

    3
    /
    4 5
    /
    1 2
    /
    0
    给定的树 t:

    4
    /
    1 2
    返回 false。

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/subtree-of-another-tree
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    type TreeNode struct {
        Val int
        Left *TreeNode
        Right *TreeNode
    }
    
    func isSubtree(s *TreeNode, t *TreeNode) bool {
        if s == nil {
            return false
        }
        return check(s, t) || isSubtree(s.Left, t) || isSubtree(s.Right, t)
    }
    
    func check(a, b *TreeNode) bool {
        if a == nil && b == nil {
            return true
        }
        if a == nil || b == nil {
            return false
        }
        if a.Val == b.Val {
            return check(a.Left, b.Left) && check(a.Right, b.Right)
        }
        return false
    }

    简单的树递归深度遍历,不过性能较差。

    一个没有高级趣味的人。 email:hushui502@gmail.com
  • 相关阅读:
    进程(第三部分)
    02_jni_hello_c函数介绍
    01_ndk目录介绍
    00_前情回顾
    06_锅炉压力案例_progressbar实现
    05_锅炉压力案例_java实现
    ASP.NET MVC的过滤器笔记
    ASP.NET MVC的过滤器笔记
    ASP.NET MVC的过滤器笔记
    ASP.NET MVC的过滤器笔记
  • 原文地址:https://www.cnblogs.com/CherryTab/p/12846547.html
Copyright © 2020-2023  润新知