剑指Offer 面试题26:树的子结构 Java代码实现
来源:互联网 发布:visual c 知乎 编辑:程序博客网 时间:2024/06/05 22:41
题目:输入两棵二叉树A和B,判断B是不是A的子结构。
解题思路分为两步:
1.在树A中找到节点值跟B根节点值相同的节点R
2.判断A中以R为根节点的子树是否包含和树B一样的结构
//递归hasSubtree其实就是前序遍历了root1//如果发现root1中存在节点的值等于root2的根节点 那么调用doesTree1HaveTree2进行判断public static boolean hasSubtree(TreeNode root1,TreeNode root2){boolean result=false;if(root1!=null&&root2!=null){if(root1.val==root2.val){result=doesTree1HaveTree2(root1,root2);}if(!result){result=hasSubtree(root1.left,root2);}if(!result){result=hasSubtree(root1.right ,root2);}}return result;}
//递归判断 两个节点值相同的树节点是否符合 root1包含root2private static boolean doesTree1HaveTree2(TreeNode root1, TreeNode root2) {//递归结束条件就是到达树的叶子结点if(root2==null)return true;if(root1==null)return false;if(root1.val!=root2.val)return false;return doesTree1HaveTree2(root1.left, root2.left)&&doesTree1HaveTree2(root1.right, root2.right);}
阅读全文
0 0
- 剑指Offer 面试题26:树的子结构 Java代码实现
- 剑指Offer:面试题18——树的子结构(java实现)
- 【剑指offer】面试题26:树的子结构
- 【剑指offer】面试题 26:树的子结构
- 剑指offer--面试题26:树的子结构
- 剑指Offer--面试题18:数的子结构--Java实现
- 【剑指offer】3.4代码的鲁棒性——面试题18:树的子结构
- [剑指offer][面试题18]树的子结构
- 【剑指offer】面试题18:树的子结构
- 剑指offer 面试题18 树的子结构
- 剑指Offer:面试题18 树的子结构
- 《剑指Offer》面试题18:树的子结构
- 剑指offer 面试题18—树的子结构
- 【剑指Offer学习】【面试题18 :树的子结构】
- 剑指offer面试题18-树的子结构
- 剑指offer-面试题18:树的子结构
- 剑指offer-面试题18.树的子结构
- 剑指offer面试题 树的子结构
- svn添加新资源库报验证位置时发生错误
- Mac系统清理工具 cleanmymac双十二来袭
- 【学习C++】两个源文件CPP(cpp与cpp) 或 头文件h与源文件cpp
- html页面,文字的自动换行
- html学习心得一
- 剑指Offer 面试题26:树的子结构 Java代码实现
- TensorBoard可视化学习
- 基数排序
- 解决64位2013word无法安装32位Visio的问题
- ubuntu虚拟机安装lamp遇到的问题 configure: error: libXpm.(a|so) not found.
- Ubuntu 16.04 安装程序的三种方式
- 使用 Builder 模式构造 JavaBean 的好处
- Android中的消息系统————Handler,MessageQueue与Looper
- 《科研有方——科研需要“想好”再“做”》笔记 Chapter2:如何做科研