题目

判断t1树是否包含t2树全部的拓扑结构

java代码

package com.lizhouwei.chapter3;/*** @Description:判断t1树是否包含t2树全部的拓扑结构* @Author: lizhouwei* @CreateDate: 2018/4/14 22:31* @Modify by:* @ModifyDate:*//*
*@Author lizhouwei
*/
public class Chapter3_11 {public boolean isContains(Node head1, Node head2) {if (head1 == null) {return false;}return check(head1, head2) || isContains(head1.left, head2) || isContains(head1.right, head2);}public boolean check(Node head1, Node head2) {if (head2 == null) {return true;}if (head1 == null || head1.value != head2.value) {return false;}return check(head1.left, head2.left) && check(head1.right, head2.right);}//测试public static void main(String[] args) {Chapter3_11 chapter = new Chapter3_11();Node head1 = new Node(1);head1.left = new Node(2);head1.right = new Node(3);head1.left.left = new Node(4);head1.left.right = new Node(5);head1.right.left = new Node(6);head1.right.right = new Node(7);head1.left.left.left = new Node(8);head1.left.left.right = new Node(9);head1.left.right.left = new Node(10);Node head2 = new Node(2);head2.left = new Node(4);head2.right = new Node(5);head2.left.left = new Node(8);System.out.print("head1 是否包含head2 :" + chapter.isContains(head1, head2));}
}

结果

转载于:https://www.cnblogs.com/lizhouwei/p/8836356.html

《程序员代码面试指南》第三章 二叉树问题 判断t1树是否包含t2树全部的拓扑结构...相关推荐

  1. 《程序员代码面试指南》第二章 链表问题 构造链表和节点的实体

    准备一些链表和节点的实体,方便后面使用 java代码 /*** @Description:构造一个链表实体,方便后续构造链表* @Author: lizhouwei* @CreateDate: 201 ...

  2. 《程序员代码面试指南》第二章 链表问题 在单链表和双链表中删除倒数第K个节点...

    题目 在单链表和双链表中删除倒数第K个节点 java代码 /*** @Description:在单链表和双链表中删除倒数第K个节点* @Author: lizhouwei* @CreateDate: ...

  3. 《程序员代码面试指南》第二章 链表问题 搜索二叉树转换为双向链表

    样例 树的中序遍历:1 2 3 4 5 6 7 ,转换后双向链表的遍历:1 2 3 4 5 6 7 java代码 /*** @Description:搜索二叉树转换为双向链表* @Author: li ...

  4. 《程序员代码面试指南》第二章 链表问题 反转部分单向链表

    题目 给一个单向链表和开始和结束的位置,将这两位置区间链表进行反转 java代码 /*** @Description:反转部分单向链表* @Author: lizhouwei* @CreateDate ...

  5. 《程序员代码面试指南》第一章 栈和队列 设计一个有getMin功能的栈

    题目 实现一个特殊的栈,在实现栈的基本功能上,再实现返回栈中最小的元素的操作 要求 1. pop.push.getMin操作时间复杂度都是O(1) 2. 设计的栈类型可以使用现成的栈结构 java代码 ...

  6. 《程序员代码面试指南》第二章 链表问题 删除无序链表中值重复的链表

    样例 998 998 998 999 999 999 1000 1000 1000 删除后为998 999 1000 java代码 /*** @Description:删除无序链表中值重复的链表* @ ...

  7. 《程序员代码面试指南第二版》Python实现(个人读书笔记)

    说明 最近在读左神的书---<程序员代码面试指南-IT名企算法与数据结构题目最优解(第二版)>以及看了一些左神的基础.进阶.高频等视频课程,为了记录自己的学习成果,并且方便以后查看,将自己 ...

  8. 程序员代码面试指南第二版 4.猫狗队列

    welcome to my blog 程序员代码面试指南第二版 4.猫狗队列 题目描述 题目描述 实现一种猫狗队列的结构,要求如下: 1. 用户可以调用 add 方法将 cat 或者 dog 放入队列 ...

  9. 算法大神左程云耗尽5年心血分享程序员代码面试指南第2版文档

    前言 学习是一种基础性的能力.然而,"吾生也有涯,而知也无涯.",如果学习不注意方法,则会"以有涯随无涯,殆矣". 学习就像吃饭睡觉一样,是人的一种本能,人人都 ...

  10. 《程序员代码面试指南》第三章 二叉树问题 二叉树节点间的最大距离问题

    题目 二叉树节点间的最大距离问题 java代码 package com.lizhouwei.chapter3;/*** @Description:二叉树节点间的最大距离问题* @Author: liz ...

最新文章

  1. ArrayList的subList方法
  2. 一文读懂图像局部特征点检测算法
  3. Docker 常用命令 (持续更新)
  4. python组件的react实现_React-Router动态路由设计最佳实践
  5. Composer 中国全量镜像(二)
  6. Xshell的一些实用技巧
  7. React JS 组件间沟通的一些方法
  8. jq之fadeOut()
  9. java局部变量简述
  10. VS编译时自动引用Debug|Release版本的dll
  11. ArcGIS 地统计的几种空间插值的应用范围和区别
  12. Hibernate基础知识
  13. 关于LR和PS显示颜色和到处颜色不同的处理办法
  14. 计算机网络实验:无线组网
  15. 相关模块的接口表及API
  16. 《途客圈创业记:不疯魔,不成活》一一2.9 UX再造
  17. 韩商言喊你来使用模切ERP系统
  18. 管理知识型员工:德鲁克日志之五月一日
  19. matlab里findobj,Matlab之findobj()
  20. 燕山大学数据结构与算法课程实践——ISBN号识别系统的设计与开发

热门文章

  1. Atitit 项目wechat微信截屏生成vcf通讯录384 个 384个人 42个节拍,平均每个8个人 技术点 im图像裁剪, ocr Tesseract Vcf格式 /wechatTel
  2. Atitit java wav 压缩 mp3功能总结 目录 1.1. Lame mp3编码器 1 1.2. 使用时发现错误,不支持Unsupported number of channels: 4
  3. atitit 读书与获取知识资料的attilax的总结与心得 v6
  4. atitit.抽奖活动插件组件设计--结构设计and 抽奖流程建模
  5. atitit.提升软件开发效率大的总结O5
  6. paip.提升安全性--------用户密码控件方案总结
  7. 不一样的摊余成本法债基—终篇
  8. Oauth2.0如何理解?
  9. Kafka开源转商业实践,助力车主无忧系统稳健 | 凌云时刻
  10. 《巴伦周刊》:除了芯片,英特尔还是一家顶级风投