美文网首页
算法(10)拓扑结构相同子树

算法(10)拓扑结构相同子树

作者: 来搞事情 | 来源:发表于2018-09-18 00:40 被阅读0次

描述
对于两棵彼此独立的二叉树A和B,请编写一个高效算法,检查A中是否存在一棵子树与B树的拓扑结构完全相同。
给定两棵二叉树的头结点A和B,请返回一个bool值,代表A中是否存在一棵同构于B的子树。

注意
序列化可以使用先序,中序,后续或者层次遍历。但是需要记录空节点。参考 算法(3)顺序遍历二叉树

微信图片_20180918003803.png

这个并不能理解为简单的字符是否包含,它是树结构,{1}对应的树其实是1 null null,序列化之后就会发现 1!#!#! 和1!2!...不相等

/*
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;
    public TreeNode(int val) {
        this.val = val;
    }
}*/
public class IdenticalTree {
    public boolean chkIdentical(TreeNode A, TreeNode B) {
        StringBuilder s1 = new StringBuilder("");
        StringBuilder s2 = new StringBuilder("");
        preHander(A,s1);
        preHander(B,s2);
        return s1.toString().contains(s2.toString());
    }
    
    public void preHander(TreeNode root,StringBuilder s){
        if(root == null){
            s.append("#!");
            return;
        }
        s.append(root.val).append("!");
        preHander(root.left,s);
        preHander(root.right,s);
    }
}

相关文章

  • 算法(10)拓扑结构相同子树

    描述对于两棵彼此独立的二叉树A和B,请编写一个高效算法,检查A中是否存在一棵子树与B树的拓扑结构完全相同。给定两棵...

  • 3_2拓扑结构相同子树

    问题 序列化用了递归和非递归,字符串匹配一种是调用了string自带的find函数,一种是自己写的,KMP算法还不会……

  • 拓扑结构相同子树练习题

    题目 对于两棵彼此独立的二叉树A和B,请编写一个高效算法,检查A中是否存在一棵子树与B树的拓扑结构完全相同。 给定...

  • 问题:寻找拓扑结构相同的子树

    对于两棵彼此独立的二叉树A和B,请编写一个高效算法,检查A中是否存在一棵子树与B树的拓扑结构完全相同。思路:前序遍...

  • 数据结构学习 | 迪杰斯特拉(附算法实现)

    我眼中的迪杰斯特拉算法 网上有很多种解释,我眼中的算法是用在拓扑结构中求解最短路径类问题。这里拓扑结构需要有源结点...

  • Graph-一般算法

    和图相关的算法有:最小生成子树,最短路径,拓扑排序。 这里仅介绍最小生成树和最短路径,拓扑排序暂时省略。 最小生成...

  • 计算机网络笔记:链路状态路由算法

    链路状态路由算法 Dijkstra算法 所有节点掌握网络拓扑和链路费用链路状态广播;所有节点拥有相同信息 计算从一...

  • 模板

    并查集 拓扑排序 Floyd算法 Dijkstra算法

  • 字符串类型面试题目总结

    字符串系列题目一览: 1.t1是否有与t2树拓扑结构相同的子树2.判断两个字符串是否互为变形词?3.判断两个字符串...

  • LeetCode 第207题:课程表

    1、前言 2、思路 使用拓扑排序的方法,拓扑排序其实是使用的 BFS 算法,简而言之使用 BFS 算法解题。算法流...

网友评论

      本文标题:算法(10)拓扑结构相同子树

      本文链接:https://www.haomeiwen.com/subject/ggzjnftx.html