树的子结构
来源:互联网 发布:gtkwave mac 编辑:程序博客网 时间:2024/05/22 23:08
题目描述:
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
解题思路:
(要养成一个习惯,对任何一个树节点进行访问时,一定要提前检测该节点是否为空)
1、递归思想,如果根节点相同则递归调用SameRootNode(),如果根节点不相同,则判断tree1的左子树和tree2是否相同,再判断右子树和tree2是否相同;
2、注意null条件。
/** * Created by Administrator on 2017/4/13. */public class Solution23 { public static class TreeNode{ int val; TreeNode left = null; TreeNode right = null; public TreeNode(int val){ this.val = val; } } public static boolean HasSubTree(TreeNode root1,TreeNode root2){ if (root1 == null&& root2 == null){ return false; }else if (root1.val == root1.val){ return SameRootNode(root1,root2); }else if (root1.left != root2){ return HasSubTree(root1.right,root2); }else { return HasSubTree(root1.right,root2); } } public static boolean SameRootNode(TreeNode root1,TreeNode root2){ if (root1 == null && root2 !=null){return false;} if (root2 == null){return true;} if (root1.val != root2.val){return false;} return SameRootNode(root1.left,root2.left) && SameRootNode(root1.right,root2.right); } public static void main(String args[]){ TreeNode a = new TreeNode(5); TreeNode b = new TreeNode(6); System.out.println(HasSubTree(a,b)); }}
0 0
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 一行神奇的 javascript 代码
- 对接口参数进行加密调用接口获取信息
- SpringMVC基础入门,框架搭建
- JVM结构、GC工作机制详解
- oracle sql通过判断条件更新数据库某个字段的值内容
- 树的子结构
- Ubuntu 16.04 安装配置 JDK
- 编译支持https的curl
- 记一个oracle官网下的数据类型页访问地址
- Eigen库求取最大特征值和特征向量
- hadoop集成到myeclipse中报错/MapReducePreferencePage : Unsupported major.minor version 51.0解决方案
- Python3实例:使用cx_Freeze打包成exe文件
- 深度学习中的感受野计算
- 设置textview可以复制黏贴