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 }
  • 相关阅读:
    函数作业1
    函数、装饰器、迭代器、内置方法总练习题
    疑问
    装饰器
    文件练习题1,2
    内置函数练习题和总结
    GET和POST请求的区别
    HTTP请求方法
    HTTP之状态码
    HTTP之响应消息Response
  • 原文地址:https://www.cnblogs.com/EdwardLiu/p/11557424.html
Copyright © 2011-2022 走看看