zoukankan      html  css  js  c++  java
  • 《剑指Offer》题目:树的子结构

    题目描述:树的子结构

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

    题目分析:此题可以拆成两题,1.在二叉树中查找是否存在某个结点;2.判断两个二叉树是否有相同的结构

    Java代码:

    class TreeNode {
        int val = 0;
        TreeNode left = null;
        TreeNode right = null;
    
        public TreeNode(int val) {
            this.val = val;
        }
    
    }
    public class HasSubtree {
        public boolean hasSubtree(TreeNode root1,TreeNode root2) {
            boolean res = false;
            if (root1 != null && root2 !=null){
                if (root1.val == root2.val){
                    //这时候判断两个二叉树是否有相同的结构
                    res = isAHasB(root1, root2);
                }
                if (!res){
                    res = hasSubtree(root1.left,root2);
                }
                if (!res){
                    res = hasSubtree(root1.right, root2);
                }
            }
            return res;
        }
       //判断两个二叉树是否有相同的结构
    public boolean isAHasB(TreeNode root1,TreeNode root2){ if (root2 == null) return true; if (root1 == null) return false; if (root1.val != root2.val) return false; return isAHasB(root1.left, root2.left) && isAHasB(root1.right, root2.right); } }
    技进乎艺,艺进乎道
  • 相关阅读:
    [bzoj1280]卖猪
    [51nod1237]最大公约数之和V3
    [cf741C]Arpa’s overnight party and Mehrdad’s silent entering
    [bzoj1576]安全路径
    [bzoj1143]祭祀
    db_writer_processes默认大小
    oracle审计功能启动关闭
    db_writer_processes默认大小
    手机发博客
    第27课 .net程序破解
  • 原文地址:https://www.cnblogs.com/weekend/p/6979684.html
Copyright © 2011-2022 走看看