Nowcoder-剑指offer-树的子结构
2017-02-11 13:04
330 查看
题目:
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
代码
Node.java
具体的思路就是:
/*
判断 A树 里面是否有B树 先判断 A树的根 和B树的根的 val值是否一致,如果相同 则判断 A 的左根和B的左根,A的右根和B的右根
然后,如果 A树的根和B树的根不一致,那么 用和 A.left 、A.right和B树相比
*/
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
代码
/** * Created by xizwu on 2017/2/9. */ public class Solution { public static boolean HasSubtree(Node root1,Node root2){ boolean result = false; if(root1 != null && root2 != null){ result = doesTreeHaveTree2(root1, root2); if(!result){ result = HasSubtree(root1.left, root2); } if(!result){ result = HasSubtree(root1.right, root2); } } return result; } private static boolean doesTreeHaveTree2(Node root1, Node root2){ if(root2 == null){ return true; } if(root1 == null){ return false; } if(root1.key != root2.key){ return false; } return doesTreeHaveTree2(root1.left, root2.left) && doesTreeHaveTree2(root1.right, root2.right); } public static void main(String[] args) { Node root1 = new Node(8); Node node8 = new Node(8); Node node7 = new Node(7); root1.left = node8; root1.right = node7; Node node9 = new Node(9); node8.left = node9; Node node2 = new Node(2); node8.right = node2; Node node4 = new Node(4); Node node72 = new Node(7); node2.left = node4; node2.right = node72; Node root2 = new Node(8); Node node92 = new Node(9); Node node22 = new Node(2); root2.left = node92; root2.right = node22; System.out.println(HasSubtree(root1, root2)); } }
Node.java
public class Node { int key=0; Node left=null; Node right=null; public Node(int key){ this.key=key; }
具体的思路就是:
/*
判断 A树 里面是否有B树 先判断 A树的根 和B树的根的 val值是否一致,如果相同 则判断 A 的左根和B的左根,A的右根和B的右根
然后,如果 A树的根和B树的根不一致,那么 用和 A.left 、A.right和B树相比
*/
相关文章推荐
- 剑指offer_面试题18_树的子结构
- 剑指向offer-树的子结构-php
- 剑指offer-面试题 18:树的子结构
- 【剑指offer-解题系列(17)】树的子结构
- 【剑指offer】之树的子结构
- 剑指offer面试18 树的子结构
- 【剑指offer】树的子结构
- 【剑指offer】面试题 26:树的子结构
- 剑指offer-面试题18:树的子结构
- [剑指offer]面试题8:树的子结构
- 剑指offer面试题18 树的子结构
- 剑指offer--树的子结构
- 【剑指offer】3.4代码的鲁棒性——面试题18:树的子结构
- 剑指offer:树的子结构
- 牛客网-剑指offer-17-树的子结构
- 剑指offer--树的子结构
- 剑指offer解题报告(Java版)——树的子结构 18
- 剑指Offer-26:树的子结构
- 剑指offer:树的子结构 代码实现
- 【剑指offer】17树的子结构