【剑指offer】树的子结构

来源:互联网 发布:西瓜影音mac版 编辑:程序博客网 时间:2024/05/29 14:10

题目:

输入两颗二叉树A,B,判断B是不是A的子结构。


分析:

判断两棵树是否相包含,可以从头结点开始比较,如果比较得到相同的结点,递归比较左右是否相同。


实现:

<span style="font-family:Microsoft YaHei;font-size:14px;">public class Solution {    public boolean HasSubtree(TreeNode root1,TreeNode root2) {        boolean result = false;        if(root1!=null && root2!=null){            if(root1.val == root2.val){                result = have(root1,root2);            }            if(!result){                result = HasSubtree(root1.left,root2);            }            if(!result){                result = HasSubtree(root1.right,root2);            }        }        return result;    }    public static boolean have(TreeNode root1,TreeNode root2){        if(root2==null){            return true;        }        if(root1 == null){            return false;        }        if(root1.val != root2.val){            return false;        }        return have(root1.left,root2.left) && have(root1.right,root2.right);    }}</span>


0 0
原创粉丝点击