树的子结构
来源:互联网 发布:c语言写图书管理系统 编辑:程序博客网 时间:2024/05/16 17:32
题目描述
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
数据结构:
public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } }
解法:
判断子树的时候,我们首先需要遍历A树,找到A树中结点与B树根结点相同的结点,然后判定以当前结点为根结点的树结构是否和B树相同。
代码如下:
public boolean HasSubtree(TreeNode root1, TreeNode root2) { if (root1 == null || root2 == null){ return false; } boolean flag = false; if (root1.val == root2.val){ flag = isSubTree(root1, root2); } if (!flag){ flag = HasSubtree(root1.left, root2) || HasSubtree(root1.right, root2); } return flag; } private boolean isSubTree(TreeNode root1, TreeNode root2) { if (root2 == null) return true; if (root1 == null) return false; if (root1.val == root2.val){ return isSubTree(root1.left, root2.left) && isSubTree(root1.right, root2.right); } return false; }
0 0
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 求最大的数(二):利用委托改成一个入口函数
- 问题三十八:C++中bad alloc问题(1)——分析问题
- scala string to int|scala 字符串转int
- alertController的封装(在TYAlertController基础上封装)
- 我要AK
- 树的子结构
- 挑战程序设计竞赛 POJ 3253 贪心+霍夫曼思想+优先队列
- java零基础入门知识1.0——java基本工具介绍
- A - Table Decorations codeforces 487C
- poj 1328 Radar Installation
- java---Map接口的实现类HashMap和Hashtable
- 152. Maximum Product Subarray**
- Windows Server AppFabric安装教程
- 快速排序和冒泡排序【最简单易懂的Demo】