zoukankan      html  css  js  c++  java
  • 剑指offer-树的子结构

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

    思路:利用递归判断结点本身以及左右孩子

    ac代码:

     1 /**
     2 public class TreeNode {
     3     int val = 0;
     4     TreeNode left = null;
     5     TreeNode right = null;
     6 
     7     public TreeNode(int val) {
     8         this.val = val;
     9 
    10     }
    11 
    12 }
    13 */
    14 import java.util.ArrayList;
    15 public class Solution {
    16     public boolean HasSubtree(TreeNode root1,TreeNode root2) {  
    17         if(root1 == null&&root2 != null)return false;  
    18         if(root2 == null)return false;  
    19         boolean flag = false;  
    20         if(root1 != null&&root2 != null){  
    21             if(root1.val == root2.val){  
    22                 flag = isSame(root1,root2);  
    23             }  
    24             if(!flag){  
    25                 flag = HasSubtree(root1.left,root2);  
    26             }  
    27             if(!flag){  
    28                 flag = HasSubtree(root1.right,root2);  
    29             }  
    30         }  
    31         return flag;  
    32     }  
    33         static boolean isSame(TreeNode t1,TreeNode t2){
    34         if(t1==null&&t2!=null)
    35             return false;
    36         if(t2==null)
    37             return true;
    38         if(t1.val==t2.val){
    39                 
    40                 return isSame(t1.left,t2.left)&&isSame(t1.right,t2.right);
    41             }else
    42                 return false;
    43         
    44     }
    45 }
  • 相关阅读:
    peudoclass与pseudo的相同点与不同点
    第一个页面
    自我介绍
    Virtual IP Address 学习记录
    OpenStack 学习记录
    Dubbo学习记录 MAC
    售前 银行
    log4j2 学习记录 Pattern Layout
    Zookeeper学习记录 mac下安装部署
    P2695 骑士的工作
  • 原文地址:https://www.cnblogs.com/llsq/p/8796313.html
Copyright © 2011-2022 走看看