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 }
  • 相关阅读:
    ubuntu 12.04 安装 redis
    php 获取中文字符拼音首字母
    js 调整排序
    python 练习
    Configuring Locales
    missing locales
    clean code meaningful names
    ubuntu 12.04 支持中文----完胜版
    why add to http response.responseText
    不通过扩展名,去判断文件类型
  • 原文地址:https://www.cnblogs.com/llsq/p/8796313.html
Copyright © 2011-2022 走看看