zoukankan      html  css  js  c++  java
  • 剑指Offer(Java版)第二十二题:输入两棵二叉树A和B,判断B是不是A的子结构。

    /*
    输入两棵二叉树A和B,判断B是不是A的子结构。
    */
    //解题思路:
    //1)对A进行遍历,寻找B的根子节点
    //2)接着在A中寻找是否含有B的结构。
    public class Class22 {

    static class TreeNode{
    double val;
    TreeNode left = null;
    TreeNode right = null;
    public TreeNode(int val){
    this.val = val;
    }
    }

    public boolean hasSubTree(TreeNode tree1, TreeNode tree2){
    boolean result = false;
    if((tree1 == null) || (tree2 == null)){
    return false;
    }
    if((tree1 != null) && (tree2 != null)){
    if(tree1.val == tree2.val){
    result = doseTree1HasTree2(tree1,tree2);
    if(!result){
    result = hasSubTree(tree1.left,tree2) || hasSubTree(tree1.right,tree2);
    }
    }
    }
    return result;
    }

    public boolean doseTree1HasTree2(TreeNode tree1, TreeNode tree2){
    if(tree1 == null){
    return false;
    }
    if(tree2 == null){
    return true;
    }
    if(tree1.val == tree2.val){
    return true;
    }
    if(tree1.val != tree2.val){
    return false;
    }
    return doseTree1HasTree2(tree1.left,tree2.left) && doseTree1HasTree2(tree1.right,tree2.right);
    }

    public static void main(String[] args) {
    // TODO Auto-generated method stub

    }

    }

  • 相关阅读:
    lnmp搭建禅道项目
    Vue 常用指令
    vue-tools
    阿里巴巴iconfont使用
    vue创建项目
    yarn 安装vue
    php 名字中间加星号
    图片转base64
    php阿里云短信功能
    php实名认证,身份证号,姓名加照片比对
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12465467.html
Copyright © 2011-2022 走看看