zoukankan      html  css  js  c++  java
  • Leetcode: Subtree of Another Tree

    Given two non-empty binary trees s and t, check whether tree t has exactly the same structure and node values with a subtree of s. A subtree of s is a tree consists of a node in s and all of this node's descendants. The tree s could also be considered as a subtree of itself.
    
    Example 1:
    Given tree s:
    
         3
        / 
       4   5
      / 
     1   2
    Given tree t:
       4 
      / 
     1   2
    Return true, because t has the same structure and node values with a subtree of s.
    Example 2:
    Given tree s:
    
         3
        / 
       4   5
      / 
     1   2
        /
       0
    Given tree t:
       4
      / 
     1   2
    Return false.

    Recursion:

     1 class Solution {
     2     public boolean isSubtree(TreeNode s, TreeNode t) {
     3         if (t == null) return true;
     4         if (s == null) return false;       
     5         if (isSametree(s, t)) return true;
     6         return isSubtree(s.left, t) || isSubtree(s.right, t);
     7     }
     8     
     9     public boolean isSametree(TreeNode s, TreeNode t) {
    10         if (s == null && t == null) return true;
    11         if (s == null || t == null) return false;
    12         if (s.val != t.val) return false;
    13         return isSametree(s.left, t.left) && isSametree(s.right, t.right);
    14     }
    15 }
  • 相关阅读:
    Android SDCard操作(文件读写,容量计算)
    weibo4
    weibo5
    android源码结构分析
    后台退出事件
    获取服务器和客户端信息
    vs2008破解升级
    禁止所有蜘蛛
    页面的回发与回传
    显示上一条新闻 下一条新闻
  • 原文地址:https://www.cnblogs.com/EdwardLiu/p/11557424.html
Copyright © 2011-2022 走看看