zoukankan      html  css  js  c++  java
  • 判断二叉树B是否是二叉树A的一部分

    public class 判断B树是否是A树的子树
    {
        // 递归 判断其是否为子树
        public boolean HasSubtree(TreeNode root1, TreeNode root2)
        {
            // 若root2为null则直接返回false
            boolean res = false;
            if (root1 != null && root2 != null)
            {
                // 判断第一个相同的结点 然后递归进行比较
                if (root1.val == root2.val)
                {
                    res = isTree1HasTree2(root1, root2);
                }
                // 否则进行root1.left 为新的root1
                if (!res)
                {
                    res = HasSubtree(root1.left, root2);
                }
                // 否则进行root1.left 为新的root1
                if (!res)
                {
                    res = HasSubtree(root1.right, root2);
                }
            }
            return res;
        }

        private boolean isTree1HasTree2(TreeNode root1, TreeNode root2)
        {
            // root2还有结点而root1没有结点了
            if (root1 == null && root2 != null)
            {
                return false;
            }
            // root2最后都没有结点
            if (root2 == null)
            {
                return true;
            }
            // 值不等
            if (root1.val != root2.val)
            {
                return false;
            }
            return isTree1HasTree2(root1.left, root2.left)
                    && isTree1HasTree2(root1.right, root2.right);
        }

    }

  • 相关阅读:
    正则表达式
    UVALive
    Python科学计算基础篇
    IntelliJ IDEA 2017.3激活与汉化
    hive order by,sort by, distribute by, cluster by作用以及用法
    Hive调优
    Hive 索引
    hive视图
    Hive 分区 分桶使用
    linux内核优化,内核参数详解
  • 原文地址:https://www.cnblogs.com/qingtianBKY/p/7083003.html
Copyright © 2011-2022 走看看