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

CC150 4.7

时间:2014-11-28 10:30:24      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:interview

4.7 You have two very large binary trees: T1, with millions of nodes, and T2, with hundreds of nodes. Create an algorithm to decide if T2 is a subtree of T1.

// It will iterate main tree (millions) nodes.
// Too bad.
boolean isSubTree(Node main, Node sub)
{
  if (main == null)
    return null;
    
  if (main == sub)
    return isTreeEquals(main, sub)
    
  if (main == sub)
    return isTreeEquals(sub, main);
  else
  {
    return isSubTree(main.left, sub) && isSubTree(main.right, sub);
  }
}

boolean isTreeEquals(Node t1, Node t2)
{
  if (t1 == null || t2 == null)
  {
    return t1 == t2;
  }
  else
  {
    return ( t1 == t2 ) && 
      isTreeEquals(t1.left, t2.left) && 
      isTreeEquals(t2.right, t2.right);
  }
}


Any better idea?

CC150 4.7

标签:interview

原文地址:http://7371901.blog.51cto.com/7361901/1583682

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