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);
        }

    }

  • 相关阅读:
    [转]mysql的查询、子查询及连接查询
    [转]Mysql之Union用法
    [转]Mysql Join语法解析与性能分析
    【转】mysql中select用法
    [转]mysql update操作
    【转】mysql INSERT的用法
    框架:NHibernate学习目录
    NET基础篇——Entity Framework 数据转换层通用类
    MVC5 + EF6 + Bootstrap3
    MVC5+EF6 入门完整教程
  • 原文地址:https://www.cnblogs.com/qingtianBKY/p/7083003.html
Copyright © 2011-2022 走看看