码迷,mamicode.com
首页 > 其他好文 > 详细

【剑指offer】十一。树的子结构

时间:2015-09-01 22:43:50      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:

题目描述

请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
分析:两棵树A 和B,判断B是不是A的子树,分为三种情况,一,A的根和B的根相同,则继续比较A的左子树与B的左子树,A的右子树与B的右子树。二,若A的根和B的根不同,这比较B是不是在A的左子树中,三,比较B是不是在A的右子树中。代码如下:
 1 /**
 2 public class TreeNode {
 3     int val = 0;
 4     TreeNode left = null;
 5     TreeNode right = null;
 6  
 7     public TreeNode(int val) {
 8         this.val = val;
 9  
10     }
11  
12 }
13 */
14 public class Solution {
15    public boolean HasSubtree(TreeNode root1,TreeNode root2) {
16      boolean res = false ;
17      if(root1!=null&&root2!=null){
18          if(root1.val==root2.val){
19              res = doesHas(root1,root2);
20          }
21          if(!res){
22              res = HasSubtree(root1.left,root2) ;
23          }
24          if(!res){
25              res = HasSubtree(root1.right,root2) ;
26          }
27      }
28      return res ;
29     }
30     private boolean doesHas(TreeNode root1, TreeNode root2) {
31     if(root2==null){
32         return true ;
33     }
34     if(root1==null){
35         return false ;
36     }
37     if(root1.val!=root2.val){
38         return false ;
39     }
40       
41     return doesHas(root1.left,root2.left)&&doesHas(root1.right,root2.right);
42 }
43 }

 

【剑指offer】十一。树的子结构

标签:

原文地址:http://www.cnblogs.com/huntertoung/p/4777251.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!