zoukankan      html  css  js  c++  java
  • [LeetCode] 572. 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.

    题意:找一个树的子树

    这里注意一点就行了,必须是子树不能是相同结构的情况

    递归判断即可

    class Solution {
        private boolean helper(TreeNode s, TreeNode t) {
            if (t != null && s == null)
                return false;
            if (t == null && s == null)
                return true;
            if (t == null && s != null)
                return false;
            if (t.val != s.val)
                return false;
            return helper(s.right, t.right) && helper(s.left, t.left);
        }
        public boolean isSubtree(TreeNode s, TreeNode t) {
            if (s == null)
                return false;
            boolean flag = false;
            if (s.val == t.val)
                 flag = helper(t, s);
            return isSubtree(s.left, t) || isSubtree(s.right, t) || flag;
        }
    }
  • 相关阅读:
    课后作业03
    课堂测验02
    构建之法阅读笔记02
    进度条 二
    软件工程个人作业02
    Sprint6
    Sprint5
    Alpha版总结会议
    Beta版总结会议
    Alpha阶段项目Postmortem会议总结
  • 原文地址:https://www.cnblogs.com/Moriarty-cx/p/9785524.html
Copyright © 2011-2022 走看看