博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
判断二叉树之间的子树关系
阅读量:4545 次
发布时间:2019-06-08

本文共 1618 字,大约阅读时间需要 5 分钟。

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

1 package com.algorithm; 2  3 /*class TreeNode { 4  int val = 0; 5  TreeNode left = null; 6  TreeNode right = null; 7  public TreeNode(int val) { 8  this.val = val; 9  }10  }*/11 public class HasSubtreeTest {12     class TreeNode {13         int val = 0;14         TreeNode left = null;15         TreeNode right = null;16 17         public TreeNode(int val) {18             this.val = val;19         }20     }21 22     public boolean HasSubtree(TreeNode root1, TreeNode root2) {23         boolean result = false;// 返回结果24         if (root1 != null && root2 != null) {25             if (root1.val == root2.val)26                 result = IsTree1HasTree2(root1, root2);// 递归遍历27             if (!result) // 如果根结点不行,那么继续向左右子树遍历28                 result = IsTree1HasTree2(root1.left, root2);29             if (!result)30                 result = IsTree1HasTree2(root1.right, root2);31         }32         return result;33     }34 35     public boolean IsTree1HasTree2(TreeNode root1, TreeNode root2) {36         // 如果root1 为空 并且 root2不为空,那么代表并没有找到37         if (root1 == null && root2 != null)38             return false;39         // 如果根2 为空 ,则代表当前结点有40         if (root2 == null)41             return true;42         // 如果结点值不相等,那么返回false43         if (root1.val != root2.val)44             return false;45         // 再左右遍历子树46         return IsTree1HasTree2(root1.left, root2.left)47                 && IsTree1HasTree2(root1.right, root2.right);48     }49 50     public static void main(String[] args) {51 52     }53 }

 

转载于:https://www.cnblogs.com/fankongkong/p/6519429.html

你可能感兴趣的文章
win7下的PHP+IIS配置,找不到php5isapi.dll的问题,版本5.4.9
查看>>
thinkphp+redis实现秒杀功能
查看>>
Java 基础面试题
查看>>
LAMP安装(一)关于Apache的源码安装
查看>>
全排列
查看>>
我也不知道叫什么
查看>>
怎样用命令查看网卡接口的方法
查看>>
css经典布局—Sticky footers布局
查看>>
mysql表设计---时间类型
查看>>
wamp服务器
查看>>
Codeforces 1144G Two Merged Sequences dp
查看>>
STL内存分配方式
查看>>
NS2移动节点
查看>>
redis取值报错
查看>>
Oracle 客户端 使用 expdp/impdp 示例 说明
查看>>
模拟3d
查看>>
【BZOJ】 1041: [HAOI2008]圆上的整点
查看>>
Oracle Data Guard 重要配置参数
查看>>
c3p0参数解释
查看>>
ASP.NET MVC5+EF6+EasyUI 后台管理系统(41)-组织架构
查看>>