数的子结构

来源:互联网 发布:五十而知天命的意思 编辑:程序博客网 时间:2024/05/16 12:44

题目描述

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

采用两个递归来实现,第一个递归是遍历树A,找到A中与B的根节点相等的节点,第二个递归是用来比较从找到

的节点开始与B树每个节点进行比较,如果都相同则是子树,如果不相同,则继续进行寻找,如果没找到,则不

不是A的子树。

public class Solution {     public boolean HasSubtree(TreeNode root1,TreeNode root2) {         boolean result=false;          if(root1!=null&&root2!=null){             if(root1.val==root2.val){                 result=doesHasSubtree(root1,root2);             }             if(!result){                 result=HasSubtree(root1.left,root2);             }             if(!result){                 result=HasSubtree(root1.right,root2);             }         }                     return result;     }          private boolean doesHasSubtree(TreeNode root1,TreeNode root2){         if(root2==null)             return true;         if(root1==null)             return false;         if(root1.val!=root2.val)             return false;         return doesHasSubtree(root1.left,root2.left)&&doesHasSubtree(root1.right,root2.right);     }}
0 0
原创粉丝点击